version: '3' services: traefik: # The official v2 Traefik docker image image: traefik:v2.5 # Enables the web UI and tells Traefik to listen to docker command: --api.insecure=true --providers.docker --entryPoints.http.address=:3100 --entryPoints.traefik.address=:3200 ports: - "3100:3100" # The Web UI (enabled by --api.insecure=true) - "3200:3200" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock networks: et_full_system: aliases: - s3.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - azure_blob_storage.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} links: - db - redis - minio - azurite - mailhog - et et: image: 'et_full_system:1.0.0.pre' build: context: ../ dockerfile: docker/Dockerfile args: GEM_VERSION: user_id: ${UID:-1000} links: - db - redis - minio - azurite - mailhog depends_on: - db - redis - azurite - mailhog - minio extra_hosts: - "localhost.from.docker:${LOCALHOST_FROM_DOCKER_IP}" volumes: - bundle:/usr/local/bundle - global_node_modules:/usr/lib/node_modules - ${PWD}:/home/app/full_system - et1_node_modules:/home/app/full_system/systems/et1/node_modules - et3_node_modules:/home/app/full_system/systems/et3/node_modules - api_node_modules:/home/app/full_system/systems/api/node_modules - admin_node_modules:/home/app/full_system/systems/admin/node_modules - et1_assets:/home/app/full_system/systems/et1/public/apply/assets - et3_assets:/home/app/full_system/systems/et3/public/assets - admin_assets:/home/app/full_system/systems/admin/public/assets - s3_data:/home/app/minio_data - azure_storage_data:/home/app/azure_storage_data - et1_bundle:/home/app/full_system/systems/et1/.bundle - et3_bundle:/home/app/full_system/systems/et3/.bundle - api_bundle:/home/app/full_system/systems/api/.bundle - atos_bundle:/home/app/full_system/systems/atos/.bundle - admin_bundle:/home/app/full_system/systems/admin/.bundle - admin_bundle:/home/app/full_system/systems/et_ccd_export/.bundle - ./.empty:/home/app/full_system/systems/et1/.env - ./.empty:/home/app/full_system/systems/et3/.env - ./.empty:/home/app/full_system/systems/api/.env - ./.empty:/home/app/full_system/systems/atos/.env - ./.empty:/home/app/full_system/systems/admin/.env - ./.empty:/home/app/full_system/systems/et_ccd_export/.env - ./.empty:/home/app/full_system/systems/et1/.env.local - ./.empty:/home/app/full_system/systems/et3/.env.local - ./.empty:/home/app/full_system/systems/api/.env.local - ./.empty:/home/app/full_system/systems/atos/.env.local - ./.empty:/home/app/full_system/systems/admin/.env.local - ./.empty:/home/app/full_system/systems/et_ccd_export/.env.local environment: DB_HOST: 'db' DB_USERNAME: 'postgres' RAILS_ENV: RAILS_LOG_LEVEL: REDIS_HOST: redis SERVER_PORT: ${SERVER_PORT:-3100} SERVER_DOMAIN: ${SERVER_DOMAIN:-et.127.0.0.1.nip.io} CLOUD_PROVIDER: ${CLOUD_PROVIDER:-azure} AZURITE_STORAGE_PATH: /home/app/azure_storage_data MINIO_STORAGE_PATH: /home/app/minio_data SHOW_DOWNTIME_BANNER: CCD_AUTH_BASE_URL: ${CCD_AUTH_BASE_URL:-http://ccd.et.127.0.0.1.nip.io:3100/auth} CCD_IDAM_BASE_URL: ${CCD_IDAM_BASE_URL:-http://ccd.et.127.0.0.1.nip.io:3100/idam} CCD_DATA_STORE_BASE_URL: ${CCD_DATA_STORE_BASE_URL:-http://ccd.et.127.0.0.1.nip.io:3100/data_store} CCD_ECM_BASE_URL: ${CCD_ECM_BASE_URL:-http://ccd.et.127.0.0.1.nip.io:3100/ecm} CCD_DOCUMENT_STORE_BASE_URL: ${CCD_DOCUMENT_STORE_BASE_URL:-http://ccd.et.127.0.0.1.nip.io:3100/document_store} CCD_MICROSERVICE_ID: ${CCD_MICROSERVICE_ID:-ccd_gw} CCD_MICROSERVICE_SECRET: ${CCD_MICROSERVICE_SECRET:-AAAAAAAAAAAAAAAC} CCD_SIDAM_USERNAME: ${CCD_SIDAM_USERNAME:-m@m.com} CCD_SIDAM_PASSWORD: ${CCD_SIDAM_PASSWORD:-p} command: /bin/bash --login -c "cd /home/app/full_system && et_full_system local server --in-docker-compose ${SERVER_ARGS}" networks: et_full_system: aliases: - api.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - admin.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - et1.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - et3.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - azure.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - atos.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - mail.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} - ccd.${SERVER_DOMAIN:-et.127.0.0.1.nip.io} labels: - traefik.http.routers.et1-router.rule=Host(`et1.et.127.0.0.1.nip.io`) - traefik.http.routers.et1-router.service=et1-service - traefik.http.services.et1-service.loadbalancer.server.port=4000 - traefik.http.routers.et3-router.rule=Host(`et3.et.127.0.0.1.nip.io`) - traefik.http.routers.et3-router.service=et3-service - traefik.http.services.et3-service.loadbalancer.server.port=4001 - traefik.http.routers.api-router.rule=Host(`api.et.127.0.0.1.nip.io`) - traefik.http.routers.api-router.service=api-service - traefik.http.services.api-service.loadbalancer.server.port=4002 - traefik.http.routers.admin-router.rule=Host(`admin.et.127.0.0.1.nip.io`) - traefik.http.routers.admin-router.service=admin-service - traefik.http.services.admin-service.loadbalancer.server.port=4003 - traefik.http.routers.atos-router.rule=Host(`atos.et.127.0.0.1.nip.io`) - traefik.http.routers.atos-router.service=atos-service - traefik.http.services.atos-service.loadbalancer.server.port=4004 - traefik.http.routers.acas-router.rule=Host(`acas.et.127.0.0.1.nip.io`) - traefik.http.routers.acas-router.service=acas-service - traefik.http.services.acas-service.loadbalancer.server.port=4005 - traefik.http.routers.ccd-router.rule=Host(`ccd.et.127.0.0.1.nip.io`) - traefik.http.routers.ccd-router.service=ccd-service - traefik.http.services.ccd-service.loadbalancer.server.port=4006 - traefik.http.routers.notify-router.rule=Host(`notify.et.127.0.0.1.nip.io`) - traefik.http.routers.notify-router.service=notify-service - traefik.http.services.notify-service.loadbalancer.server.port=4007 #command: bash -lc "cd /home/app/full_system/systems/api && REDIS_DATABASE=2 bundle exec sidekiq" db: image: postgres:9.6.9 networks: - et_full_system ports: - "${DB_PORT:-0}:5432" volumes: - db_data:/var/lib/postgresql/data redis: image: redis ports: - "${REDIS_PORT:-0}:6379" networks: - et_full_system volumes: - redis_data:/data minio: image: minio/minio labels: - traefik.http.routers.s3-router.rule=Host(`s3.et.127.0.0.1.nip.io`) - traefik.http.routers.s3-router.service=s3-service - traefik.http.services.s3-service.loadbalancer.server.port=9000 command: - server - /data networks: - et_full_system mailhog: image: mailhog/mailhog:v1.0.1 labels: - traefik.http.routers.mail-router.rule=Host(`mail.et.127.0.0.1.nip.io`) - traefik.http.routers.mail-router.service=mail-service - traefik.http.services.mail-service.loadbalancer.server.port=8025 networks: - et_full_system azurite: image: mcr.microsoft.com/azure-storage/azurite labels: - traefik.http.routers.azurite-router.rule=Host(`azure_blob_storage.et.127.0.0.1.nip.io`) - traefik.http.routers.azurite-router.service=azurite-service - traefik.http.services.azurite-service.loadbalancer.server.port=10000 networks: - et_full_system volumes: bundle: global_node_modules: et1_node_modules: et3_node_modules: s3_node_modules: api_node_modules: admin_node_modules: et1_assets: et3_assets: admin_assets: s3_data: azure_storage_data: et1_bundle: et3_bundle: admin_bundle: api_bundle: atos_bundle: db_data: redis_data: networks: et_full_system: