tutor/tutor/templates/local/docker-compose.jobs.yml

50 lines
2.2 KiB
YAML

# Tutor provides the `tutor MODE do JOB ...` CLI as a consistent way to execute jobs
# across the dev, local, and k8s modes. To support jobs in the docker compose modes
# (dev and local), we must define a `-job` variant service in which jobs could be run.
# When `tutor local do JOB ...` is invoked, we `docker compose run` each of JOB's
# tasks against the appropriate `-job` services, as defined here.
# When `tutor dev do JOB ...` is invoked, we do the same, but also include any
# compose overrides in ../dev/docker-compose.jobs.yml.
# Note that these services will all be `run` rather than `start`ed and `exec`ed.
# This is because jobs are often used for initialization tasks, which may need to
# happen before the service can be successfully `start`ed.
version: "{{ DOCKER_COMPOSE_VERSION }}"
services:
mysql-job:
image: {{ DOCKER_IMAGE_MYSQL }}
depends_on: {{ [("mysql", RUN_MYSQL)]|list_if }}
lms-job:
image: {{ DOCKER_IMAGE_OPENEDX }}
environment:
SERVICE_VARIANT: lms
DJANGO_SETTINGS_MODULE: lms.envs.tutor.production
volumes:
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
- ../apps/openedx/config:/openedx/config:ro
{%- for mount in iter_mounts(MOUNTS, "openedx", "lms-job") %}
- {{ mount }}
{%- endfor %}
depends_on: {{ [("mysql", RUN_MYSQL), ("mongodb", RUN_MONGODB)]|list_if }}
cms-job:
image: {{ DOCKER_IMAGE_OPENEDX }}
environment:
SERVICE_VARIANT: cms
DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
volumes:
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
- ../apps/openedx/config:/openedx/config:ro
{%- for mount in iter_mounts(MOUNTS, "openedx", "cms-job") %}
- {{ mount }}
{%- endfor %}
depends_on: {{ [("mysql", RUN_MYSQL), ("mongodb", RUN_MONGODB), ("elasticsearch", RUN_ELASTICSEARCH), ("redis", RUN_REDIS)]|list_if }}
{{ patch("local-docker-compose-jobs-services")|indent(4) }}