diff --git a/.dockerignore b/.dockerignore index a0d42ef..7814e45 100644 --- a/.dockerignore +++ b/.dockerignore @@ -12,3 +12,4 @@ phpstan.dist.neon phpunit.dist.xml nomad.deploy.hcl deployment.properties +var/download/* diff --git a/compose.yml b/compose.yml index 1489d2e..87aae4e 100755 --- a/compose.yml +++ b/compose.yml @@ -36,8 +36,6 @@ services: build: dockerfile: docker/Dockerfile.worker context: . - args: - APP_VERSION: latest restart: unless-stopped volumes: - $PWD:/app @@ -45,14 +43,11 @@ services: tty: true environment: TZ: America/Chicago - command: --download 2 --async scheduler: build: - dockerfile: docker/Dockerfile.worker + dockerfile: docker/Dockerfile.scheduler context: . - args: - APP_VERSION: latest restart: unless-stopped volumes: - $PWD:/app diff --git a/deploy.compose.yml b/deploy.compose.yml index 87453c1..0074d0f 100755 --- a/deploy.compose.yml +++ b/deploy.compose.yml @@ -13,8 +13,6 @@ services: - /mnt/media/downloads/tvshows:/var/download/tvshows - mercure_data:/data - mercure_config:/config - depends_on: - - database worker: @@ -22,36 +20,21 @@ services: volumes: - /mnt/media/downloads/movies:/var/download/movies - /mnt/media/downloads/tvshows:/var/download/tvshows - restart: always -# command: -vv --time-limit=3600 --limit=10 deploy: replicas: 2 depends_on: - app -# -# scheduler: -# image: registry.caldwell.digital/home/torsearch-scheduler:${TAG} -# volumes: -# - /mnt/media/downloads/movies:/var/download/movies -# - /mnt/media/downloads/tvshows:/var/download/tvshows -# restart: always -# command: -vv -# depends_on: -# - app - - redis: - image: redis:latest + scheduler: + image: registry.caldwell.digital/home/torsearch-scheduler:${TAG} volumes: - - redis_data:/data - command: redis-server --maxmemory 512MB - restart: unless-stopped + - /mnt/media/downloads/movies:/var/download/movies + - /mnt/media/downloads/tvshows:/var/download/tvshows + depends_on: + - app volumes: - mysql: mercure_config: mercure_data: - redis_data: - diff --git a/docker/Dockerfile.base.worker b/docker/Dockerfile.base.worker index 8432d23..a32eac7 100644 --- a/docker/Dockerfile.base.worker +++ b/docker/Dockerfile.base.worker @@ -27,3 +27,9 @@ RUN mkdir -p /etc/supervisor/conf.d # We start supervisord and supervisord starts # respective service in the configuration file. ENTRYPOINT ["/app/bin/console", "init:worker"] + +# Message transports can be enabled by passing them as command options. +# Inlcluding a number with the option will start that amount of processes +# for the transport. Not supplying a number will default to 1. +# --download --monitor OR --download 2 --monitor + diff --git a/docker/Dockerfile.scheduler b/docker/Dockerfile.scheduler index 8a4ea56..cd6b511 100644 --- a/docker/Dockerfile.scheduler +++ b/docker/Dockerfile.scheduler @@ -1,10 +1,21 @@ -FROM code.caldwell.digital/home/torsearch-base-worker:php8.4-alpine +### +# This version of Torsearch can run the scheduler, downloader, and +# worker in one container. Each process is managerd by supervisord +# and can be configured via environment variables, and more than +# one of these containers can still be run. +### -ARG APP_VERSION="0.0.0-dev" -ENV APP_VERSION="${APP_VERSION}" +# Default to latest, but should pass in a version +ARG APP_VERSION="latest" -COPY . /app +# Start with our base worker image +FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest -ENTRYPOINT [ "php", "/app/bin/console", "messenger:consume", "scheduler_monitor" ] +# Set the APP_VERSION in the image +ENV APP_VERSION=${APP_VERSION} -HEALTHCHECK --interval=3s --timeout=3s --retries=10 CMD return 0 +# Copy the actual application code from the previously built app +COPY --chown=1000:1000 ./ /app + +# To retain backwards compatibility, default to async & download transports +CMD [ "--async", "--download" ] diff --git a/docker/Dockerfile.worker b/docker/Dockerfile.worker index 82b1a11..cd6b511 100644 --- a/docker/Dockerfile.worker +++ b/docker/Dockerfile.worker @@ -1,26 +1,21 @@ ### -# This version of Torsearch runs the scheduler, downloader, and worker -# in this one container. Each process is managerd by supervisord -# and can be configured via environment variables and more -# than one of these containers cans till be run. +# This version of Torsearch can run the scheduler, downloader, and +# worker in one container. Each process is managerd by supervisord +# and can be configured via environment variables, and more than +# one of these containers can still be run. ### + +# Default to latest, but should pass in a version ARG APP_VERSION="latest" -FROM code.caldwell.digital/home/torsearch-app:${APP_VERSION} AS base_image - - +# Start with our base worker image FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest +# Set the APP_VERSION in the image ENV APP_VERSION=${APP_VERSION} -COPY --from=base_image --chown=1000:1000 /app /app -COPY docker/ /app/docker +# Copy the actual application code from the previously built app +COPY --chown=1000:1000 ./ /app -# We start supervisord and supervisord starts -# respective service in the configuration file. -ENTRYPOINT ["/app/bin/console", "init:worker"] - -# Message transports can be enabled by passing them as command options. -# Inlcluding a number with the option will start that amount of processes -# for the transport. Not supplying a number will default to 1. -# --download --monitor OR --download 2 --monitor +# To retain backwards compatibility, default to async & download transports +CMD [ "--async", "--download" ]