88 lines
2.0 KiB
YAML
88 lines
2.0 KiB
YAML
services:
|
|
db:
|
|
image: postgres:15-alpine
|
|
container_name: metatron_erp_db_prod
|
|
restart: always
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-metatron_aca_erp}
|
|
POSTGRES_USER: ${POSTGRES_USER:-odoo}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- prod_pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- internal_network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-odoo} -d ${POSTGRES_DB:-metatron_aca_erp}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
|
|
odoo:
|
|
image: odoo:19.0
|
|
container_name: metatron_erp_app_prod
|
|
restart: always
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
HOST: db
|
|
PORT: 5432
|
|
USER: ${POSTGRES_USER:-odoo}
|
|
PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- prod_odoo_data:/var/lib/odoo
|
|
- ../addons:/mnt/extra-addons:ro
|
|
- ./odoo.prod.conf:/etc/odoo/odoo.conf:ro
|
|
command: odoo -c /etc/odoo/odoo.conf
|
|
networks:
|
|
- internal_network
|
|
- proxy_network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://127.0.0.1:8069/web/health || exit 1"]
|
|
interval: 15s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: metatron_erp_nginx_prod
|
|
restart: always
|
|
depends_on:
|
|
odoo:
|
|
condition: service_healthy
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx/metatron_erp.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./certs:/etc/nginx/certs:ro
|
|
networks:
|
|
- proxy_network
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "5"
|
|
|
|
networks:
|
|
internal_network:
|
|
internal: true
|
|
proxy_network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
prod_pgdata:
|
|
prod_odoo_data:
|