docker-compose.portals.yml
version: '3'
volumes:
coverage:
services:
redis:
image: redis:latest
dpc_web:
build:
context: .
dockerfile: dpc-web/Dockerfile
image: dpc-web:latest
volumes:
- "./dpc-web/coverage:/dpc-web/coverage"
- ./tmp/letter_opener/web:/dpc-web/tmp/letter_opener
environment:
- REDIS_URL=redis://redis
- DATABASE_URL=postgresql://db/dpc-website_development
- TEST_DATABASE_URL=postgresql://db/dpc-website_test
- API_METADATA_URL=http://api:3002/v1
- API_ADMIN_URL=http://api:9900
- GOLDEN_MACAROON=${GOLDEN_MACAROON}
- DB_USER=postgres
- DB_PASS=dpc-safe
- DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
- DPC_CA_CERT=${DPC_CA_CERT}
- RUBY_YJIT_ENABLE=1
ports:
- "3900:3500"
depends_on:
- db
- redis
- web_sidekiq
web_sidekiq:
volumes:
- ./tmp/letter_opener/web:/dpc-web/tmp/letter_opener
build:
context: .
dockerfile: dpc-web/Dockerfile
command: sidekiq
image: dpc-web-sidekiq:latest
environment:
- REDIS_URL=redis://redis
- DATABASE_URL=postgresql://db/dpc-website_development
- DB_USER=postgres
- DB_PASS=dpc-safe
depends_on:
- redis
- db
dpc_admin:
build:
context: .
dockerfile: dpc-admin/Dockerfile
image: dpc-web-admin:latest
volumes:
- "./dpc-admin/coverage:/dpc-admin/coverage"
- ./tmp/letter_opener/admin:/dpc-admin/tmp/letter_opener
environment:
- REDIS_URL=redis://redis
- GOLDEN_MACAROON=${GOLDEN_MACAROON}
- API_METADATA_URL=http://api:3002/v1
- API_ADMIN_URL=http://api:9900
- DATABASE_URL=postgresql://db/dpc-website_development
- TEST_DATABASE_URL=postgresql://db/dpc-website_test
- DB_USER=postgres
- DB_PASS=dpc-safe
- DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
- RUBY_YJIT_ENABLE=1
ports:
- "3000:3000"
depends_on:
- db
- redis
- admin_sidekiq
admin_sidekiq:
volumes:
- ./tmp/letter_opener/admin:/dpc-admin/tmp/letter_opener
build:
context: .
dockerfile: dpc-admin/Dockerfile
command: sidekiq
image: dpc-admin-sidekiq:latest
environment:
- REDIS_URL=redis://redis
- DATABASE_URL=postgresql://db/dpc-website_development
- DB_USER=postgres
- DB_PASS=dpc-safe
depends_on:
- redis
- db
dpc_portal:
build:
context: .
dockerfile: dpc-portal/Dockerfile
image: dpc-web-portal:latest
volumes:
# Mount specific directories to avoid overwriting
# precompiled assets (public/assets/) and node_modules
- "./dpc-portal/app:/dpc-portal/app"
- "./dpc-portal/db:/dpc-portal/db"
- "./dpc-portal/lib:/dpc-portal/lib"
- "./dpc-portal/log:/dpc-portal/log"
- "./dpc-portal/bin:/dpc-portal/bin"
- "./dpc-portal/config:/dpc-portal/config"
- "./dpc-portal/config.ru:/dpc-portal/config.ru"
- "./dpc-portal/spec:/dpc-portal/spec"
# Mount dependency files
- "./dpc-portal/package.json:/dpc-portal/package.json"
- "./dpc-portal/package-lock.json:/dpc-portal/package-lock.json"
- "./dpc-portal/Gemfile:/dpc-portal/Gemfile"
- "./dpc-portal/Gemfile.lock:/dpc-portal/Gemfile.lock"
# Mount coverage and utility files
- "./dpc-portal/coverage:/dpc-portal/coverage"
- ./tmp/letter_opener/portal:/dpc-portal/tmp/letter_opener
env_file:
- ./ops/config/decrypted/local.env
environment:
# Misc. non-application settings
- TERM=${TERM:-xterm-256color}
- 'PS1=${DOCKER_PS1:-[docker] \w: }'
- "LSCOLORS=${DOCKER_LSCOLORS:- }"
# Application settings
- REDIS_URL=redis://redis
- DATABASE_URL=postgresql://db/dpc-portal_development
- TEST_DATABASE_URL=postgresql://db/dpc-portal_test
- GOLDEN_MACAROON=${GOLDEN_MACAROON}
- API_METADATA_URL=http://api:3002/v1
- API_ADMIN_URL=http://api:9900
- DB_USER=postgres
- DB_PASS=dpc-safe
- DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
- CPI_API_GW_BASE_URL=http://localhost:4567/
- CMS_IDM_OAUTH_URL=http://localhost:4567/
- RUBY_YJIT_ENABLE=1
- ENV=local
ports:
- "3100:3100"
depends_on:
- db
- portal_sidekiq
portal_sidekiq:
volumes:
- ./tmp/letter_opener/portal:/dpc-portal/tmp/letter_opener
build:
context: .
dockerfile: dpc-portal/Dockerfile
command: sidekiq
image: dpc-web-portal:latest
environment:
- REDIS_URL=redis://redis
- DATABASE_URL=postgresql://db/dpc-portal_development
- DB_USER=postgres
- DB_PASS=dpc-safe
- GOLDEN_MACAROON=${GOLDEN_MACAROON}
- API_METADATA_URL=http://api:3002/v1
depends_on:
- redis
- db
# Starts up each service in the background
start_core_dependencies:
image: dadarek/wait-for-dependencies
depends_on:
- db
- redis
command: db:5432
start_web:
image: dadarek/wait-for-dependencies
depends_on:
- dpc_web
command: dpc_web:3500
start_admin:
image: dadarek/wait-for-dependencies
depends_on:
- dpc_admin
command: dpc_admin:3000
start_portal:
image: dadarek/wait-for-dependencies
depends_on:
- dpc_portal
command: dpc_portal:3100