version: '3.8' services: app: build: context: .. dockerfile: docker/Dockerfile container_name: lastwar_app restart: unless-stopped ports: - "8080:80" env_file: - ../.env environment: - 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: - lastwar_network depends_on: 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:-rootpassword} MYSQL_DATABASE: ${DB_NAME:-lastwar} MYSQL_USER: ${DB_USER:-lastwar} MYSQL_PASSWORD: ${DB_PASS:-} volumes: - db_data:/var/lib/mysql - ../database:/docker-entrypoint-initdb.d:ro networks: - lastwar_network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 20s retries: 10 libretranslate: image: libretranslate/libretranslate container_name: lastwar_libretranslate restart: unless-stopped ports: - "5000:5000" networks: - lastwar_network healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:5000/languages || exit 1"] interval: 30s timeout: 10s retries: 3 networks: lastwar_network: driver: bridge volumes: db_data: app_logs: app_galeria: