dummybot/docker-compose.yml
javiservices 65981b4bd6
Some checks are pending
Deploy DummyBot / Build & Deploy to ${{ env.DEPLOY_HOST }} (push) Waiting to run
feat(deploy): webhook de Gitea → /webhook/deploy
Gitea 1.22.6 no soporta Actions completo. Solución:
- WebhookController valida HMAC-SHA256, dispara script en background
- /usr/local/bin/dummybot-deploy.sh hace git pull + composer + npm + migrate + up
- Webhook en Gitea → POST http://157.180.77.232:18080/webhook/deploy
- Secreto DEPLOY_WEBHOOK_SECRET en .env, validado por X-Hub-Signature-256
- Mount del script y log dir al container dummybot_app
2026-06-18 12:12:11 +02:00

73 lines
2.0 KiB
YAML

version: "3.8"
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: dummybot_app
restart: unless-stopped
working_dir: /var/www
volumes:
- .:/var/www
- /usr/local/bin/dummybot-deploy.sh:/usr/local/bin/dummybot-deploy.sh:ro
- /var/log/dummybot-deploy:/var/log/dummybot-deploy
environment:
- AUTO_MIGRATE=${AUTO_MIGRATE:-0}
- DEPLOY_WEBHOOK_SECRET=${DEPLOY_WEBHOOK_SECRET:-}
networks:
- laravel
webserver:
image: nginx:alpine
container_name: dummybot_web
restart: unless-stopped
expose:
- 80
volumes:
- .:/var/www
- ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
- laravel
- proxy
depends_on:
- app
db:
image: mysql:8.0
container_name: dummybot_db
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE:-dummybot}
MYSQL_USER: ${DB_USERNAME:-dummybot}
MYSQL_PASSWORD: ${DB_PASSWORD:-dummybot}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root}
volumes:
- dbdata:/var/lib/mysql
networks:
- laravel
# ─────────────────────────────────────────────────────────────
# Túnel socat para exponer el backend en :18080 sin TLS.
# Útil mientras el proxy-manager no tiene host para dummybot.
# Si ya tienes HTTPS, este contenedor es opcional.
# ─────────────────────────────────────────────────────────────
expose:
image: alpine/socat
container_name: dummybot_expose
restart: unless-stopped
ports:
- "18080:80"
command: TCP-LISTEN:80,fork,reuseaddr TCP:dummybot_web:80
networks:
- proxy
depends_on:
- webserver
volumes:
dbdata:
networks:
laravel:
proxy:
external: true