81 lines
2.0 KiB
YAML
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:
|