ads-marketing/docker-compose.yml
2025-07-22 15:52:56 +05:00

72 lines
1.5 KiB
YAML

version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql-auth
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: authdb
MYSQL_USER: authuser
MYSQL_PASSWORD: authpassword
ports:
- '3310:3306'
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
auth-service:
image: node:20
container_name: auth-service
restart: always
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: authdb
DB_USER: authuser
DB_PASSWORD: authpassword
JWT_SECRET: supersecretkey
volumes:
- ./auth-service:/usr/src/app
working_dir: /usr/src/app
command: bash -c "npm install && npm start"
depends_on:
mysql:
condition: service_healthy
mail-service:
image: node:20
container_name: mail-service
restart: always
volumes:
- ./mail-service:/usr/src/app
working_dir: /usr/src/app
command: bash -c "npm install && npm start"
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: authdb
DB_USER: authuser
DB_PASSWORD: authpassword
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
volumes:
mysql_data: