feat: add docker setup for asteroid app
This commit is contained in:
parent
c4fd96289b
commit
ab3acf1279
|
|
@ -0,0 +1,8 @@
|
|||
docker/
|
||||
music/
|
||||
data/
|
||||
*.org
|
||||
docker-compose.yml
|
||||
Dockerfile*
|
||||
Makefile
|
||||
.git/
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
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" ]
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
services:
|
||||
asteroid:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: Dockerfile.asteroid
|
||||
image: asteroid/app
|
||||
container_name: asteroid
|
||||
environment:
|
||||
- ASTEROID_STREAM_URL=${ASTEROID_STREAM_URL:-http://localhost:8000}
|
||||
volumes:
|
||||
- ${MUSIC_LIBRARY:-../music/library}:/app/music/library:ro
|
||||
- ${QUEUE_PLAYLIST:-../stream-queue.m3u}:/app/stream-queue.m3u
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
; meta (:version 1.0 :package "RADIANCE-CORE")
|
||||
((:interfaces (:admin . "r-simple-admin") (:auth . "r-simple-auth")
|
||||
(:ban . "r-simple-ban") (:cache . "r-simple-cache")
|
||||
(:data-model . "r-simple-model") (:database . "i-lambdalite")
|
||||
(:relational-database . "i-sqlite") (:logger . "i-verbose")
|
||||
(:mail . "i-smtp") (:profile . "r-simple-profile") (:rate . "r-simple-rate")
|
||||
(:server . "i-hunchentoot") (:session . "r-simple-sessions")
|
||||
(:user . "r-simple-users"))
|
||||
(:versions
|
||||
. [hash-table equal ("radiance-core" :|2.2.0|) ("i-hunchentoot" :|1.1.0|)
|
||||
("asteroid" :|0.0.0|) ("i-log4cl" :|1.0.0|) ("r-clip" :|1.0.0|)
|
||||
("r-data-model" :|1.0.1|) ("i-lambdalite" :|1.0.0|)
|
||||
("r-simple-users" :|1.0.1|)
|
||||
("r-simple-errors" :|1.0.0|) ("i-verbose" :|1.0.0|)
|
||||
("r-simple-auth" :|1.0.0|) ("r-simple-sessions" :|1.0.1|)
|
||||
("r-ratify" :|1.0.0|) ("r-simple-rate" :|1.0.0|)
|
||||
("r-simple-profile" :|1.0.0|)])
|
||||
(:domains "radiance" "localhost")
|
||||
(:startup :r-simple-errors :r-simple-sessions) (:routes)
|
||||
(:debugger . :if-swank-connected))
|
||||
Loading…
Reference in New Issue