Files
calebburke.dev/docker-compose.development.yml
T
2026-06-24 23:47:55 -07:00

121 lines
2.9 KiB
YAML

x-default-environment: &default-environment
TZ: "UTC"
NODE_ENV: development
DB_HOST: db
DB_USERNAME: &default-db-username alphane
DB_DATABASE: alphane_development
DB_PASSWORD: &default-db-password DevPwd99!
DB_PORT: &default-db-port 5432
DB_TRUST_SERVER_CERTIFICATE: "true"
DB_HEALTH_CHECK_INTERVAL_SECONDS: 5
DB_HEALTH_CHECK_TIMEOUT_SECONDS: 10
DB_HEALTH_CHECK_RETRIES: 3
DB_HEALTH_CHECK_START_PERIOD_SECONDS: 5
FRONTEND_URL: "http://localhost:8080"
VITE_APPLICATION_NAME: "ALPHANE"
VITE_API_BASE_URL: "http://localhost:3000"
VITE_AUTH0_CLIENT_ID: "TRlKzdNBynpo9tU1RSmnF0p8d3IEam4J"
VITE_AUTH0_AUDIENCE: "alphane-api"
VITE_AUTH0_DOMAIN: "https://dev-7mdjzcgwirhocfwm.ca.auth0.com"
RELEASE_TAG: "${RELEASE_TAG:-development}"
GIT_COMMIT_HASH: "${GIT_COMMIT_HASH:-not-set}"
services:
api:
build:
context: ./api
dockerfile: development.Dockerfile
image: wrap-api:latest
env_file:
- ./api/.env.development
environment:
<<: *default-environment
tty: true # allows attaching debugger, equivalent of docker exec -t
# stdin_open: true # equivalent of docker exec -i
ports:
- "3000:3000"
- "9229:9229"
volumes:
- ./api:/usr/src/api
- ./.gitignore:/usr/src/.gitignore
- ./.prettierrc.yaml:/usr/src/.prettierrc.yaml
depends_on:
- db
web:
build:
context: ./web
dockerfile: development.Dockerfile
environment:
<<: *default-environment
ports:
- "8080:8080"
volumes:
- ./web:/usr/src/web
- ./.gitignore:/usr/src/.gitignore
- ./.prettierrc.yaml:/usr/src/.prettierrc.yaml
depends_on:
- api
test_api:
build:
context: ./api
dockerfile: development.Dockerfile
command: /bin/true
env_file:
- ./api/.env.development
environment:
<<: *default-environment
NODE_ENV: test
DB_DATABASE: alphane_test
DEFAULT_LOG_LEVEL: "info"
DB_HEALTH_CHECK_START_PERIOD_SECONDS: 0
tty: true
volumes:
- ./api:/usr/src/api
depends_on:
- db
profiles:
- test
test_web:
build:
context: ./web
dockerfile: development.Dockerfile
command: /bin/true
environment:
<<: *default-environment
NODE_ENV: test
tty: true
volumes:
- ./web:/usr/src/web
profiles:
- test
db:
image: postgres:17.6
user: root
environment:
<<: *default-environment
POSTGRES_USER: *default-db-username
POSTGRES_PASSWORD: *default-db-password
ports:
- "5432:5432"
volumes:
- pg-data:/var/lib/postgresql/data
# For easily generating large PlantUML diagrams
# Not relevant to production environment.
# Accessible at http://localhost:9999
plantuml:
image: plantuml/plantuml-server:jetty
ports:
- 9999:8080
environment:
PLANTUML_LIMIT_SIZE: 8192
profiles:
- design
volumes:
pg-data: