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: