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: