name: tvcloud networks: nextcloud-frontend: nextcloud-backend: openproject-frontend: openproject-backend: volumes: nextcloud-db: nextcloud: openproject-db: openproject: x-op-restart-policy: &restart_policy restart: unless-stopped x-op-image: &image image: openproject/openproject:16-slim x-op-app: &app <<: [*image, *restart_policy] environment: OPENPROJECT_HTTPS: "true" OPENPROJECT_HOST__NAME: "openproject.tvcloud.fr" OPENPROJECT_HSTS: "true" RAILS_CACHE_STORE: "memcache" OPENPROJECT_CACHE__MEMCACHE__SERVER: "openproject-cache:11211" DATABASE_URL: "postgres://postgres:pswd@openproject-db/openproject?pool=20&encoding=unicode&reconnect=true" RAILS_MIN_THREADS: 4 RAILS_MAX_THREADS: 16 # set to true to enable the email receiving feature. See ./docker/cron for more options IMAP_ENABLED: "false" volumes: - "openproject:/var/openproject/assets" services: proxy: build: dockerfile: ./nginx.Dockerfile networks: - nextcloud-frontend - openproject-frontend ports: - "80:80" - "443:443" volumes: - nextcloud:/var/www/html:ro depends_on: - nextcloud # NextCloud nextcloud: image: nextcloud:31-fpm env_file: - nextcloud-db.env environment: - MYSQL_HOST=nextcloud-db networks: - nextcloud-frontend - nextcloud-backend volumes: - nextcloud:/var/www/html depends_on: - nextcloud-db nextcloud-db: image: mariadb:11-ubi command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW env_file: - nextcloud-db.env environment: - MARIADB_ROOT_PASSWORD=pswd - MARIADB_AUTO_UPGRADE=1 - MARIADB_DISABLE_UPGRADE_BACKUP=1 networks: - nextcloud-backend volumes: - nextcloud-db:/var/lib/mysql # OpenProject openproject: <<: *app command: "./docker/prod/web" networks: - openproject-frontend - openproject-backend depends_on: - openproject-db - openproject-cache - openproject-seeder labels: - autoheal=true healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health_checks/default"] interval: 10s timeout: 3s retries: 3 start_period: 30s openproject-db: image: postgres:13 <<: *restart_policy stop_grace_period: "3s" volumes: - "openproject-db:/var/lib/postgresql/data" environment: POSTGRES_PASSWORD: pswd POSTGRES_DB: openproject networks: - openproject-backend openproject-cache: image: memcached <<: *restart_policy networks: - openproject-backend openproject-autoheal: image: willfarrell/autoheal:1.2.0 volumes: - "/var/run/docker.sock:/var/run/docker.sock" environment: AUTOHEAL_CONTAINER_LABEL: autoheal AUTOHEAL_START_PERIOD: 600 AUTOHEAL_INTERVAL: 30 openproject-worker: <<: *app command: "./docker/prod/worker" networks: - openproject-backend depends_on: - openproject-db - openproject-cache - openproject-seeder openproject-cron: <<: *app command: "./docker/prod/cron" networks: - openproject-backend depends_on: - openproject-db - openproject-cache - openproject-seeder openproject-seeder: <<: *app command: "./docker/prod/seeder" restart: on-failure networks: - openproject-backend