Feature: Reescribir configuración Docker completa

- Dockerfile: PHP 8.3 con Apache, copia todo el código a la imagen
- docker-compose.yml: Sin volúmenes de código, usa env_file
- supervisord.conf: Incluye Apache, Discord bot y colas de procesos
- apache.conf: Configuración de virtualhost con rewrite
- .dockerignore: Excluye archivos innecesarios de la imagen
- Eliminados archivos duplicados de supervisor
- Creada carpeta database/ para init scripts
- Telegram funciona vía webhook (no necesita supervisor)
This commit is contained in:
2026-02-20 21:41:24 -06:00
parent c439ecd689
commit 082e01b358
10 changed files with 183 additions and 59 deletions

View File

@@ -1,34 +1,52 @@
version: '3.8'
services:
bot:
image: php:8.2-cli
container_name: lastwar_bot
app:
build:
context: ..
dockerfile: docker/Dockerfile
container_name: lastwar_app
restart: unless-stopped
volumes:
- ../lastwar:/var/www/html/lastwar
working_dir: /var/www/html/lastwar
command: /usr/local/bin/supervisord -c /var/www/html/lastwar/docker/supervisord.conf
ports:
- "8080:80"
env_file:
- ../.env
environment:
- PHP_DISPLAY_ERRORS=On
- PHP_ERROR_REPORTING=E_ALL
- DB_HOST=db
- DB_PORT=3306
- DB_NAME=${DB_NAME:-lastwar}
- DB_USER=${DB_USER:-lastwar}
- DB_PASS=${DB_PASS:-}
- LIBRETRANSLATE_URL=http://libretranslate:5000
volumes:
- app_logs:/var/www/html/logs
- app_galeria:/var/www/html/galeria
networks:
- bot_network
- lastwar_network
depends_on:
- db
db:
condition: service_healthy
libretranslate:
condition: service_started
db:
image: mysql:8.0
container_name: lastwar_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASS:-}
MYSQL_DATABASE: ${DB_NAME:-bot}
MYSQL_ROOT_PASSWORD: ${DB_PASS:-rootpassword}
MYSQL_DATABASE: ${DB_NAME:-lastwar}
MYSQL_USER: ${DB_USER:-lastwar}
MYSQL_PASSWORD: ${DB_PASS:-}
volumes:
- db_data:/var/lib/mysql
- ./db:/docker-entrypoint-initdb.d
- ../database:/docker-entrypoint-initdb.d:ro
networks:
- bot_network
- lastwar_network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
libretranslate:
image: libretranslate/libretranslate
@@ -37,11 +55,18 @@ services:
ports:
- "5000:5000"
networks:
- bot_network
- lastwar_network
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:5000/languages || exit 1"]
interval: 30s
timeout: 10s
retries: 3
networks:
bot_network:
lastwar_network:
driver: bridge
volumes:
db_data:
app_logs:
app_galeria: