/ Dockerfile.asteroid
Dockerfile.asteroid
 1  FROM debian:bookworm-slim AS builder
 2  
 3  RUN apt-get update && \
 4      apt-get install -y curl openssl ca-certificates \
 5      git make sbcl rlwrap && \
 6      rm -rf /var/lib/apt/lists/*
 7  
 8  WORKDIR /app
 9  
10  # Copy asteroid source to container workdir
11  COPY . .
12  
13  # Download Quicklisp installer
14  RUN curl -O https://beta.quicklisp.org/quicklisp.lisp
15  
16  # Installs quicklisp and radiance
17  RUN sbcl --eval "(load \"quicklisp.lisp\")" \
18  	 --eval "(quicklisp-quickstart:install)" \
19    	 --eval "(ql-dist:install-dist \"http://dist.shirakumo.org/shirakumo.txt\" :prompt nil)" \
20  	 --eval "(ql:quickload :radiance)"
21  
22  # Makes the project workdir known as a quicklisp project
23  RUN mkdir -p $HOME/.config/common-lisp/source-registry.conf.d
24  RUN echo '(:tree "/app/")' >> "$HOME/.config/common-lisp/source-registry.conf.d/projects.conf"
25  
26  # Builds Asteroid binary
27  RUN make
28  
29  # Links binary to path
30  ENV PATH="$PATH:/app"
31  
32  # Adds radiance system configuration file
33  COPY docker/radiance-default.conf.lisp $HOME/.config/radiance/default/radiance-core/radiance-core.conf.lisp
34  
35  # Application
36  EXPOSE 8080
37  # Slynk server
38  EXPOSE 4009
39  
40  ENV ASTEROID_STREAM_URL=http://localhost:8000
41  
42  CMD [ "asteroid" ]