version: '3.9'
services:
db_ihx:
image: ubuntu/mysql:8.0-22.04_beta
container_name: ${db_Container_Name}
environment:
MYSQL_ROOT_PASSWORD: ${db_Root_Password}
MYSQL_DATABASE: ${db_Name}
MYSQL_USER: ${db_User}
MYSQL_PASSWORD: ${db_Password}
volumes:
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/mysql_data:/var/lib/mysql
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/Config/custom.cnf:/etc/mysql/conf.d/custom.cnf
# Monta o .env para pegar informação das variáveis
- ${HOME}/Docker/IHX_Access_Pro/${cliente}:/.p455/.env
# Monta o diretório para s3nh4 do usuario
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/Config:/.p455
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/Config/mysql-entrypoint.sh:/usr/local/bin/mysql-entrypoint.sh
entrypoint: ["/bin/bash", "/usr/local/bin/mysql-entrypoint.sh"]
# Customização e saúde do conteiner
deploy:
resources:
limits:
# Limita o uso da CPU pelo contêiner a 2 núcleos.
cpus: '2'
# Limita o uso de memória pelo contêiner a 2GB.
memory: 2G
healthcheck:
# Verifica a integridade do contêiner usando curl para acessar a porta 3306.
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
# O intervalo entre cada verificação de integridade.
interval: 30s
# O tempo máximo que uma verificação de integridade pode levar antes de ser considerada uma falha.
timeout: 10s
# O número de falhas consecutivas na verificação de integridade necessárias para que o contêiner seja considerado não íntegro.
retries: 6
ports:
- "${porta_db}:3306"
restart: always
networks:
- ihx-net
ihx:
image: talesam/ihx_access_pro:1.2
container_name: ${app_Container_Name}
depends_on:
- db_ihx
environment:
DATABASES_DEFAULT_ENGINE: django.db.backends.mysql
DATABASES_DEFAULT_NAME: ${db_Name}
DATABASES_DEFAULT_HOST: ${db_Container_Name}
DATABASES_DEFAULT_USER: ${db_User}
DATABASES_DEFAULT_PASSWORD: ${db_Password}
DATABASES_DEFAULT_PORT: 3306
volumes:
# Monta as pastas app e ihx
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/ihx_access_pro/app:/ihx_access_pro/app
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/ihx_access_pro/ihx:/ihx_access_pro/ihx
# Montando script que é executado dentro do conteiner
- ${HOME}/Docker/IHX_Access_Pro/${cliente}/Config/entrypoint.sh:/entrypoint.sh
entrypoint: ["/bin/bash", "/entrypoint.sh"]
# Customização e saúde do conteiner
deploy:
resources:
limits:
# Limita o uso da CPU pelo contêiner a 2 núcleos.
cpus: '2'
# Limita o uso de memória pelo contêiner a 2GB.
memory: 2G
healthcheck:
# Verifica a integridade do contêiner usando curl para acessar a porta 3306.
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
# O intervalo entre cada verificação de integridade.
interval: 30s
# O tempo máximo que uma verificação de integridade pode levar antes de ser considerada uma falha.
timeout: 10s
# O número de falhas consecutivas na verificação de integridade necessárias para que o contêiner seja considerado não íntegro.
expose:
- 80
restart: always
networks:
- ihx-net
- npm-net
networks:
ihx-net:
name: ${network_Name}
npm-net:
external: true