From 729cd867f57bb6322ea9788ad7e4820e828ee999 Mon Sep 17 00:00:00 2001 From: David Trattnig <david.trattnig@o94.at> Date: Wed, 27 Jan 2021 16:10:54 +0100 Subject: [PATCH] Initial dockerization. engine#72 --- .dockerignore | 4 ++-- .gitignore | 2 +- Dockerfile | 26 +++++++++----------------- run.sh | 35 ++++++++++++++++++++--------------- 4 files changed, 32 insertions(+), 35 deletions(-) diff --git a/.dockerignore b/.dockerignore index 41fbfd2..064a83d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -79,8 +79,8 @@ python # Configurations config/engine-core.ini -config/docker/engine-core.ini +config/engine-core.docker.ini env.list # Socket -engine.sock \ No newline at end of file +socket/engine.sock \ No newline at end of file diff --git a/.gitignore b/.gitignore index f1a0e87..ebdf75e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,6 @@ config/engine-core.ini config/systemd/dev/ env.list audio/source -config/docker/engine-core.ini engine.sock audio +config/engine-core.docker.ini diff --git a/Dockerfile b/Dockerfile index 3b221b7..3fdee6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,25 +3,17 @@ FROM savonet/liquidsoap:v1.4.3 LABEL maintainer="David Trattnig <david.trattnig@subsquare.at>" -# Engine System Dependencies - -RUN apt-get update && apt-get -y install \ - apt-utils \ - ffmpeg \ - quelcom \ - +# Dependencies & Utils +RUN apt update && apt -y install \ + alsa-utils # Setup Engine - -RUN mkdir -p /srv -RUN mkdir -p /var/audio -RUN mkdir -p /var/audio/source -RUN mkdir -p /var/audio/station -RUN mkdir -p /var/audio/playlist -COPY . /srv +RUN mkdir -p /srv/src +RUN mkdir -p /srv/config +COPY src /srv/src +COPY run.sh /srv +VOLUME ["/srv/socket", "/srv/logs", "/var/audio/source", "/var/audio/playlist", "/var/audio/station"] WORKDIR /srv -RUN pip3 install -r requirements.txt # Start the Engine - -ENTRYPOINT ["./run.sh"] +ENTRYPOINT ["./run.sh", "core"] diff --git a/run.sh b/run.sh index b530510..69f2041 100755 --- a/run.sh +++ b/run.sh @@ -52,36 +52,41 @@ fi # +++ DOCKER COMMANDS +++ # if [[ $docker == "true" ]]; then - BASE_D=$(realpath "${BASH_SOURCE%/*}/") + BASE_DIR=$(readlink -f .) + AUDIO_DIR=$(readlink -f ./audio) + echo "Absolute base dir: " $BASE_DIR + echo "Absolute audio dir: " $AUDIO_DIR - ### Runs Engine Core & Liquidsoap ### + ### Runs Engine Core ### - if [[ $mode == "engine" ]]; then + if [[ $mode == "core" ]]; then exec sudo docker run \ --network="host" \ - --name aura-engine \ - --rm -d \ + --name aura-engine-core \ + --rm \ -u $UID:$GID \ - -v "$BASE_D":/srv \ - -v "$BASE_D/audio/source":/var/audio/source:ro \ - -v "$BASE_D/audio/station":/var/audio/station:ro \ - -v "$BASE_D/audio/playlist":/var/audio/playlist:ro \ - -v "$BASE_D/config/docker":/etc/aura \ - -v "/dev/snd":/dev/snd \ + -v "$BASE_DIR/config/engine-core.docker.ini":"/srv/config/engine-core.ini":ro \ + -v "$BASE_DIR/socket":"/srv/socket" \ + -v "$AUDIO_DIR/source":"/var/audio/source":ro \ + -v "$AUDIO_DIR/playlist":"/var/audio/playlist" \ + -v "$AUDIO_DIR/station":"/var/audio/station" \ + -v "$BASE_DIR/logs":"/srv/logs" \ + --device /dev/snd \ + --group-add audio \ + --env ALSA_CARD="2" \ --privileged \ - --tmpfs /var/log/aura/ \ - autoradio/engine + autoradio/engine-core fi ### Create Docker Image from local project ### if [[ $mode == "build" ]]; then - exec sudo docker build -t autoradio/engine . + docker build -t autoradio/engine-core . fi ### Pushes the latest Docker Image to Docker Hub ### if [[ $mode == "push" ]]; then - exec sudo docker push autoradio/engine + docker push autoradio/engine-core fi fi \ No newline at end of file -- GitLab