version: "3.8" services: app: image: 3wordchant/adaptauthoring:0.10.5 networks: - proxy - internal environment: - PORT=5000 - DOMAIN - DB_HOST=db - DB_NAME=adapt - DB_USER=adapt #- DB_PASSWORD_FILE=/var/run/secrets/db_password - SESSION_KEY_FILE=/var/run/secrets/session_key - ADMIN_EMAIL - ADMIN_PASSWORD_FILE=/var/run/secrets/admin_password - FROM_EMAIL depends_on: - db #entrypoint: ['tail', '-f', '/dev/null'] volumes: - app:/adapt_authoring secrets: #- db_password - session_key - admin_password # 3wc: This seems to succeed within the container, but isn't yet working here #healthcheck: # test: ["CMD", "curl", "-f", "http://localhost:5000"] # interval: 30s # timeout: 10s # retries: 10 # start_period: 5m deploy: restart_policy: condition: on-failure labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=5000" - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - coop-cloud.${STACK_NAME}.app.version=0.10.5-11811d58 db: image: mongo:3.7 volumes: - db:/data/db networks: - internal labels: - "traefik.enable=false" deploy: labels: ['coop-cloud.${STACK_NAME}.db.version=3.7-736eec20'] networks: proxy: external: true internal: volumes: app: db: secrets: session_key: external: true name: ${STACK_NAME}_session_key_${SECRET_SESSION_KEY_VERSION} admin_password: external: true name: ${STACK_NAME}_admin_password_${SECRET_ADMIN_PASSWORD_VERSION}