Files
nomina_ventas/docker-compose.yml

95 lines
2.3 KiB
YAML

services:
nginx:
image: nginx:alpine
container_name: nomina_nginx
ports:
- "${APP_PORT:-80}:80"
volumes:
- ./public:/var/www/html/public:ro
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app
networks:
- app_network
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
app:
build:
context: .
dockerfile: Dockerfile
args:
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
container_name: nomina_app
environment:
- APP_ENV=${APP_ENV:-production}
- APP_DEBUG=${APP_DEBUG:-false}
- APP_KEY=${APP_KEY}
- APP_URL=${APP_URL:-http://localhost}
- DB_CONNECTION=${DB_CONNECTION:-mysql}
- DB_HOST=${DB_HOST:-db}
- DB_PORT=${DB_PORT:-3306}
- DB_DATABASE=${DB_DATABASE:-nomina_ventas}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- SESSION_DRIVER=${SESSION_DRIVER:-database}
- CACHE_STORE=${CACHE_STORE:-database}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_WEBHOOK_URL=${TELEGRAM_WEBHOOK_URL}
volumes:
- ./:/var/www/html:delegated
- storage_data:/var/www/html/storage
depends_on:
db:
condition: service_healthy
networks:
- app_network
restart: unless-stopped
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
db:
image: mysql:8.0
container_name: nomina_mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${DB_DATABASE:-nomina_ventas}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
networks:
- app_network
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
networks:
app_network:
driver: bridge
volumes:
mysql_data:
storage_data: