Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.0KB

  1. ARG TARGETARCH TARGETPLATFORM TARGETVARIANT
  2. FROM --platform=$TARGETPLATFORM docker.io/$TARGETARCH${TARGETVARIANT}/alpine:3.18.2
  3. RUN addgroup -g 1000 quicklisp && adduser -D -G quicklisp -u 1000 quicklisp
  4. RUN set -eux; \
  5. apk add --no-cache \
  6. cgit \
  7. curl \
  8. gcc \
  9. git \
  10. imagemagick \
  11. libev \
  12. make \
  13. musl-dev \
  14. py3-markdown \
  15. py3-pygments \
  16. python3 \
  17. sbcl \
  18. sqlite \
  19. sqlite-libs \
  20. texlive \
  21. texlive-xetex \
  22. texmf-dist-latexextra \
  23. zxing && \
  24. rm -rf /var/cache/apk/*
  25. WORKDIR /home/quicklisp/
  26. USER quicklisp
  27. RUN curl -O https://beta.quicklisp.org/quicklisp.lisp
  28. RUN sbcl --noinform --no-userinit --no-sysinit --non-interactive \
  29. --load quicklisp.lisp --eval "(quicklisp-quickstart:install)" \
  30. --eval "(ql-util:without-prompting (ql:add-to-init-file))"
  31. RUN sbcl --non-interactive \
  32. --eval "(ql:quickload '(:slynk :slynk/arglists :slynk/fancy-inspector :slynk/indentation :slynk/mrepl :slynk/profiler :slynk/trace-dialog))"
  33. RUN sbcl --non-interactive \
  34. --eval "(ql:quickload '(:assoc-utils \
  35. :caveman2 :clack :clack-errors :datafly :djula :envy :hunchentoot :woo \
  36. :can :mito-auth :lack :lack-middleware-clack-errors :lack-middleware-csrf \
  37. :cl-csv :cl-json :cl-org-mode :cl-pass :dbd-sqlite3 :documentation-utils \
  38. :documentation-utils-extensions :lispqr :mito :mito-attachment :ratify \
  39. :sxql :trivial-download :verbose :websocket-driver :cl-markup :hermetic \
  40. :inferior-shell :psychiq :djula-gettext :gettext))"
  41. RUN mkdir -p /home/quicklisp/public
  42. COPY --chown=quicklisp:quicklisp . /home/quicklisp/quicklisp/local-projects/cl-deck-builder2/
  43. RUN sbcl --non-interactive \
  44. --eval "(ql:register-local-projects)" \
  45. --eval "(ql:quickload :cl-deck-builder2)"
  46. EXPOSE 4005 5005
  47. VOLUME ["/home/quicklisp/public/"]
  48. CMD ["sbcl", "--load", "/home/quicklisp/quicklisp/local-projects/cl-deck-builder2/preamble.lisp", "--eval", "(cl-deck-builder2:main)"]