1services:
  2  base:
  3    image: ${CHART_PROJECT_IMAGE_NAME}
  4    profiles: ["dontuse"]
  5    network_mode: host
  6    env_file: .env
  7    volumes:
  8      - /pfs:/pfs
  9      - /tcenas:/tcenas
 10<<<hidden due to potential security issue>>>
 11      - ~:/app/home
 12      - ${CHART_HOST_PASSWD}:/etc/passwd
 13      - ${CHART_HOST_GROUP}:/etc/group
 14      - /offlinearchive:/offlinearchive
 15    security_opt:
 16      - seccomp:unconfined
 17    user: ${CHART_USER_ID}:${CHART_GROUP_ID}
 18    logging:
 19      driver: "json-file"
 20      options:
 21        max-size: "10m"
 22        max-file: "10"
 23    environment:
 24      CHART_DEBUG: ${CHART_DEBUG-false}
 25  terminal:
 26    extends:
 27      service: base
 28    profiles: ["debug"]
 29    environment:
 30      PSQL_HISTORY: /app/home/.chart.psql_history
 31      HISTFILE: /app/home/.chart.bash_history
 32    command: bash
 33  debug_webserver:
 34    extends:
 35      service: base
 36    profiles: ["debug"]
 37    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-debugwebserver
 38    command: scripts/debug_webserver.sh
 39  webserver:
 40    extends:
 41      service: base
 42    profiles: ["ipr", "epp-ipr", "web"]
 43    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-webserver
 44    volumes:
 45      - static:/mnt/static
 46    command: scripts/webserver.sh
 47    # healthcheck:
 48      # test: ["CMD", "curl", "-f", "http://localhost"]
 49      # interval: 1m30s
 50      # timeout: 10s
 51      # retries: 3
 52      # start_period: 40s
 53    deploy:
 54      resources:
 55        limits:
 56          memory: 8GB
 57    restart: unless-stopped
 58    environment:
 59      CHART_STATIC_ROOT: /mnt/static
 60  scheduler:
 61    extends:
 62      service: base
 63    profiles: ["ipr"]
 64    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-scheduler
 65    command: scripts/scheduler.sh
 66    restart: unless-stopped
 67  worker_1:
 68    extends:
 69      service: base
 70    profiles: ["ipr"]
 71    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-worker-1
 72    command: scripts/worker.sh
 73    deploy:
 74      resources:
 75        limits:
 76          memory: 5GB
 77    restart: unless-stopped
 78    environment:
 79      CHART_WORKER_NAME: worker_1
 80      CHART_WORKER_MAX_WEIGHT: 1
 81  worker_2:
 82    extends:
 83      service: base
 84    profiles: ["ipr"]
 85    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-worker-2
 86    command: scripts/worker.sh
 87    deploy:
 88      resources:
 89        limits:
 90          memory: 5GB
 91    restart: unless-stopped
 92    environment:
 93      CHART_WORKER_NAME: worker_2
 94      CHART_WORKER_MAX_WEIGHT: 1
 95  worker_heavy:
 96    extends:
 97      service: base
 98    profiles: ["ipr"]
 99    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-worker-heavy
100    command: scripts/worker.sh
101    deploy:
102      resources:
103        limits:
104          memory: 48GB
105    restart: unless-stopped
106    environment:
107      CHART_WORKER_NAME: worker_heavy
108      CHART_BATCH_SIZE: "7 --exclude-activities APEX_EVENTS"
109  # worker_apex_events:
110    # extends:
111      # service: base
112    # profiles: ["ipr"]
113    # container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-worker-apex-events
114    # command: scripts/worker.sh
115    # deploy:
116      # resources:
117        # limits:
118          # memory: 8GB
119    # restart: unless-stopped
120    # environment:
121      # CHART_WORKER_NAME: "worker_apex_events"
122      # CHART_BATCH_SIZE: "--only-activities APEX_EVENTS"
123  proxy:
124    network_mode: host
125    env_file: .env
126    profiles: ["ipr", "epp-ipr", "web"]
127    container_name: ${CHART_CONTAINER_PREFIX}${CHART_PROJECT_NAME}-proxy
128    image: ${CHART_PROXY_IMAGE_NAME}
129    security_opt:
130      - seccomp:unconfined
131    volumes:
132      - /pfs:/pfs
133      - /tcenas:/tcenas
134      - static:/mnt/static
135    environment:
136      CHART_PREFIX: ${CHART_PREFIX}
137      CHART_FRONTEND_PORT: ${CHART_FRONTEND_PORT}
138      CHART_PORT: ${CHART_PORT}
139      CHART_LOG_DIR: ${CHART_LOG_DIR}/apache
140      CHART_STATIC_ROOT: /mnt/static
141    restart: unless-stopped
142volumes:
143  static:
144    external: false
145    name: ${CHART_VOLUME_PREFIX}${CHART_PROJECT_NAME}-static