FROM debian:bookworm-slim AS builder RUN apt-get update && \ apt-get install -y curl openssl ca-certificates \ git make sbcl rlwrap && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy asteroid source to container workdir COPY . . # Download Quicklisp installer RUN curl -O https://beta.quicklisp.org/quicklisp.lisp # Installs quicklisp and radiance RUN sbcl --eval "(load \"quicklisp.lisp\")" \ --eval "(quicklisp-quickstart:install)" \ --eval "(ql-dist:install-dist \"http://dist.shirakumo.org/shirakumo.txt\" :prompt nil)" \ --eval "(ql:quickload :radiance)" # Makes the project workdir known as a quicklisp project RUN mkdir -p $HOME/.config/common-lisp/source-registry.conf.d RUN echo '(:tree "/app/")' >> "$HOME/.config/common-lisp/source-registry.conf.d/projects.conf" # Builds Asteroid binary RUN make # Links binary to path ENV PATH="$PATH:/app" # Adds radiance system configuration file COPY docker/radiance-default.conf.lisp $HOME/.config/radiance/default/radiance-core/radiance-core.conf.lisp # Application EXPOSE 8080 # Slynk server EXPOSE 4009 ENV ASTEROID_STREAM_URL=http://localhost:8000 CMD [ "asteroid" ]