diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..d26ffed --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,102 @@ +name: twba + +services: + # -------------------------------------------------------------------------------- + # Utility services + # -------------------------------------------------------------------------------- + code-receiver: + ports: + - "7443:7443" + build: + context: ./twba-code-receiver + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-code-receiver + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro + + notifier: + ports: + - "8081:8080" + build: + context: ./twba.notifier + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-notifier + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro + + # -------------------------------------------------------------------------------- + # Actual services + # -------------------------------------------------------------------------------- + twitch-fetcher: + build: + context: ./twba.fetcher + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-twitch-fetcher + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro + + downloader: + build: + context: ./twba.downloader + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-downloader + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro + + splitter: + build: + context: ./twba.splitter + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-splitter + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro + + uploader: + build: + context: ./twba.uploader + dockerfile: ./../general_run_config/Dockerfile + args: + - PROGNAME=twba-uploader + environment: + - TWBA_CONFIG=/twba/configs/config.toml + restart: unless-stopped + volumes: + - /twba/:/twba/configs/:ro + - /var/tmp/twba/:/twba/tmp/:rw + - /twba/data/:/twba/data/:rw + - /etc/ssl/certs:/etc/ssl/certs:ro diff --git a/general_run_config/Dockerfile b/general_run_config/Dockerfile index 1bd35e8..00be449 100644 --- a/general_run_config/Dockerfile +++ b/general_run_config/Dockerfile @@ -12,7 +12,7 @@ COPY --from=planner /app/recipe.json recipe.json # Build dependencies - this is the caching Docker layer! RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/home/root/app/target \ - cargo chef cook --release --locked --recipe-path recipe.json + cargo chef cook --release --recipe-path recipe.json # Build application COPY /src ./src COPY /.cargo ./.cargo