74 lines
2.0 KiB
YAML
74 lines
2.0 KiB
YAML
|
|
version: "3.9"
|
||
|
|
|
||
|
|
services:
|
||
|
|
database:
|
||
|
|
image: mariadb:11.4-jammy
|
||
|
|
container_name: consumer_api_db
|
||
|
|
restart: unless-stopped
|
||
|
|
environment:
|
||
|
|
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root_password}
|
||
|
|
MARIADB_DATABASE: ${DB_NAME:-consumer_db}
|
||
|
|
MARIADB_USER: ${DB_USER:-consumer_user}
|
||
|
|
MARIADB_PASSWORD: ${DB_PASSWORD:-consumer_password}
|
||
|
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: "false"
|
||
|
|
ports:
|
||
|
|
- "${DB_PORT:-3306}:3306"
|
||
|
|
volumes:
|
||
|
|
- mariadb_data:/var/lib/mysql
|
||
|
|
- ./prisma/migrations:/docker-entrypoint-initdb.d
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||
|
|
interval: 10s
|
||
|
|
timeout: 5s
|
||
|
|
retries: 5
|
||
|
|
networks:
|
||
|
|
- consumer_network
|
||
|
|
|
||
|
|
api:
|
||
|
|
build:
|
||
|
|
context: .
|
||
|
|
dockerfile: Dockerfile
|
||
|
|
container_name: consumer_api
|
||
|
|
restart: unless-stopped
|
||
|
|
depends_on:
|
||
|
|
database:
|
||
|
|
condition: service_healthy
|
||
|
|
environment:
|
||
|
|
NODE_ENV: ${NODE_ENV:-production}
|
||
|
|
PORT: ${PORT:-5002}
|
||
|
|
DATABASE_URL: mysql://${DB_USER:-consumer_user}:${DB_PASSWORD:-consumer_password}@database:3306/${DB_NAME:-consumer_db}
|
||
|
|
SHADOW_DATABASE_URL: mysql://${DB_USER:-consumer_user}:${DB_PASSWORD:-consumer_password}@database:3306/${DB_NAME:-consumer_db}_shadow
|
||
|
|
JWT_SECRET: ${JWT_SECRET:-your_jwt_secret_key_change_in_production}
|
||
|
|
JWT_EXPIRATION: ${JWT_EXPIRATION:-604800}
|
||
|
|
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:5000,http://127.0.0.1:5000}
|
||
|
|
ports:
|
||
|
|
- "${PORT:-5002}:5002"
|
||
|
|
volumes:
|
||
|
|
- ./src:/app/src
|
||
|
|
- /app/dist
|
||
|
|
- /app/node_modules
|
||
|
|
networks:
|
||
|
|
- consumer_network
|
||
|
|
healthcheck:
|
||
|
|
test:
|
||
|
|
[
|
||
|
|
"CMD",
|
||
|
|
"wget",
|
||
|
|
"--quiet",
|
||
|
|
"--tries=1",
|
||
|
|
"--spider",
|
||
|
|
"http://localhost:5002/api/v1/health",
|
||
|
|
]
|
||
|
|
interval: 30s
|
||
|
|
timeout: 10s
|
||
|
|
retries: 3
|
||
|
|
start_period: 10s
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
mariadb_data:
|
||
|
|
driver: local
|
||
|
|
|
||
|
|
networks:
|
||
|
|
consumer_network:
|
||
|
|
driver: bridge
|