Files
psp_api/docker-compose.yml
T

74 lines
2.0 KiB
YAML
Raw Normal View History

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