Files

81 lines
2.0 KiB
YAML

version: "3.8"
services:
# Authentication Database
mysql-auth:
image: mysql:latest
container_name: mysql-auth
environment:
MYSQL_ROOT_PASSWORD: 12345678
MYSQL_DATABASE: popcenauth
MYSQL_USER: admin
ports:
- "3308:3306"
volumes:
- D:/Projects/AuthenticatedAPIDocker/app/mysql/mysqldata_auth:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 30s
timeout: 10s
retries: 5
# Data Database
mysql-data:
image: mysql:latest
container_name: mysql-data
environment:
MYSQL_ROOT_PASSWORD: 12345678
MYSQL_DATABASE: popcen2024_capi
MYSQL_USER: uploadviewer
ports:
- "3306:3306"
volumes:
- D:/Projects/AuthenticatedAPIDocker/mysql/mysqldata:/var/lib/mysql
extra_hosts:
- "host.docker.internal:host-gateway"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 30s
timeout: 10s
retries: 5
# Node.js Service
nodejs:
image: f04c/nodemysqlv2:latest
container_name: nodejs
working_dir: /app
volumes:
- D:/Projects/AuthenticatedAPIDocker/app:/app
ports:
- "3001:3000"
environment:
# Auth DB connection
AUTH_DB_HOST: mysql-auth
AUTH_DB_USER: root
AUTH_DB_NAME: popcenauth
AUTH_DB_PASSWORD: 12345678
# Data DB connection
DATA_DB_HOST: 192.168.13.14
DATA_DB_USER: uploadviewer
DATA_DB_NAME: popcen2024_capi
DATA_DB_PASSWORD: "jmcDH36]2uLb{EB9"
# JWT
JWT_SECRET_KEY: q9Z8D@1#kJ7f8*W5dA0s@rK2x!fQ3nT8lZ!yY4uF9cW7vP3jM%tA6zR5#jB2wN8qQ0jR4kT!xZ8cJ7^oW9eF4mY5&lU1s@zP2hA8qE1!cM3vN6#dB5tK7oR4sL9%tY1
TOKEN_HEADER_KEY: auth-token
depends_on:
- mysql-auth
- mysql-data
command: "node server.js"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
mysqldata_auth:
mysqldata: