cmc-sales/docker-compose.prod.yml

119 lines
3 KiB
YAML

services:
postfix:
image: boky/postfix
restart: unless-stopped
container_name: cmc-prod-postfix
env_file:
- .env.prod
# Production: relay to Gmail SMTP
environment:
- ALLOWED_SENDER_DOMAINS=cmctechnologies.com.au
# Gmail SMTP relay settings
- RELAYHOST=smtp-relay.gmail.com
- RELAYHOST_PORT=587
# SMTP_USERNAME and SMTP_PASSWORD are loaded from .env.prod via env_file
- SMTP_TLS_SECURITY_LEVEL=encrypt
- SMTP_USE_TLS=yes
- SMTP_USE_STARTTLS=yes
# --- Mailpit relay (for testing only) ---
# - RELAYHOST=mailpit:1025
networks:
- cmc-prod-network
nginx:
image: nginx:latest
container_name: cmc-prod-nginx
hostname: nginx-prod
ports:
- "8080:80" # Production nginx on port 8080 to avoid conflict
volumes:
- ./conf/nginx-site.prod.conf:/etc/nginx/conf.d/cmc.conf
- ./userpasswd:/etc/nginx/userpasswd:ro
depends_on:
- cmc-prod-php
restart: unless-stopped
networks:
- cmc-prod-network
cmc-prod-php:
build:
context: .
dockerfile: Dockerfile.prod.php
container_name: cmc-prod-php
environment:
MAIL_HOST: postfix
MAIL_PORT: 25
DB_HOST: cmc-prod-db
DB_PORT: 3306
DB_USER: cmc
DB_PASSWORD: xVRQI&cA?7AU=hqJ!%au
DB_NAME: cmc
GO_APP_HOST: cmc-prod-go:8082
volumes:
- /home/cmc/files/pdf:/var/www/cmc-sales/app/webroot/pdf
- /home/cmc/files/attachments_files:/var/www/cmc-sales/app/webroot/attachments_files
- /home/cmc/files/emails:/var/www/emails
- /home/cmc/files/vault:/var/www/vault
- /home/cmc/files/vaultmsgs:/var/www/vaultmsgs
- ./userpasswd:/etc/nginx/userpasswd:ro
networks:
- cmc-prod-network
restart: unless-stopped
depends_on:
- cmc-prod-db
cmc-prod-go:
build:
context: .
dockerfile: Dockerfile.prod.go
container_name: cmc-prod-go
environment:
DB_HOST: cmc-prod-db
DB_PORT: 3306
DB_USER: cmc
DB_PASSWORD: xVRQI&cA?7AU=hqJ!%au
DB_NAME: cmc
PORT: 8082
SMTP_HOST: postfix
SMTP_PORT: 25
SMTP_USER: ""
SMTP_PASS: ""
SMTP_FROM: "sales@cmctechnologies.com.au"
ports:
- "8083:8082"
volumes:
- /home/cmc/files/pdf:/root/webroot/pdf:ro
- /home/cmc/files/attachments_files:/root/webroot/attachments_files
- /home/cmc/files/emails:/var/www/emails
- /home/cmc/files/vault:/var/www/vault
- /home/cmc/files/vaultmsgs:/var/www/vaultmsgs
networks:
- cmc-prod-network
restart: unless-stopped
depends_on:
- cmc-prod-db
cmc-prod-db:
build:
context: .
dockerfile: Dockerfile.prod.db
container_name: cmc-prod-db
environment:
MYSQL_ROOT_PASSWORD: secureRootPassword
MYSQL_DATABASE: cmc
MYSQL_USER: cmc
MYSQL_PASSWORD: xVRQI&cA?7AU=hqJ!%au
volumes:
- db_data:/var/lib/mysql
ports:
- "3307:3306"
networks:
- cmc-prod-network
networks:
cmc-stg-network:
cmc-prod-network:
volumes:
db_data: