version: '3.9'
name: user-service
services:
api:
container_name: user-service-api
build:
context: .
dockerfile: Dockerfile
args:
PROFILE: dev environment:
DATABASE_URL: postgres://user_service:user_service@user-service-db:5432/user_service
MAIL_SERVICE_HOST: "http://user-service-mail-service-api:80"
depends_on:
db:
condition: service_healthy
ports:
- "127.0.0.1:0:80"
mail-service-api:
container_name: user-service-mail-service-api
build:
context: ../mail-service
dockerfile: Dockerfile
environment:
FLASK_APP: wsgi.py
SA_CREDS_LOCATION: sa_creds.json
volumes:
- ../mail-service:/app
ports:
- 127.0.0.1:0:80
db:
container_name: user-service-db
restart: always
build:
context: database
dockerfile: Dockerfile.dev
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: "psql -U admin -lqt | cut -d \\| -f 1 | grep -qw user_service" interval: 250ms
timeout: 3s
retries: 40
start_period: 30s
ports:
- "127.0.0.1:0:5432"
pgadmin:
container_name: user-service-pgadmin
image: dpage/pgadmin4:6.21
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin@example.com
PGADMIN_DEFAULT_PASSWORD: pgadminPassword
PGADMIN_CONFIG_SERVER_MODE: 'False'
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: 'False'
depends_on:
db:
condition: service_started
ports:
- "127.0.0.1:0:80"
volumes:
db-data: