Los workflows ahora usan deploy/Dockerfile correctamente y referencian el script de inicio desde la carpeta deploy.
Deployment de SnatchGame
Esta carpeta contiene todos los archivos y documentación necesarios para desplegar SnatchGame en diferentes entornos.
📁 Estructura de archivos
deploy/
├── Dockerfile # Imagen Docker de la aplicación completa
├── start.sh # Script de inicio para el contenedor
├── dockerignore # Archivos a ignorar en build (renombrar a .dockerignore)
├── NGINX-CONFIG.md # Configuración de Nginx Proxy Manager
├── DEPLOY-GCLOUD.md # Guía de despliegue en Google Cloud
└── gcloud/ # Scripts específicos para Google Cloud
├── create-vm.sh # Script para crear la VM
├── startup-script.sh # Script de inicio de la VM
└── update-deployment.sh # Script para actualizar deployment
🚀 Despliegue rápido
Opción 1: Docker local
cd deploy
cp dockerignore .dockerignore
docker build -t snatchgame .
docker run -p 3000:3000 -p 2567:2567 snatchgame
Opción 2: Google Cloud VM
Ver DEPLOY-GCLOUD.md para instrucciones detalladas.
Opción 3: Con Nginx Proxy Manager
Ver NGINX-CONFIG.md para configuración de proxy reverso.
🔧 Configuración de Docker
Build de la imagen
# Desde la raíz del proyecto
docker build -f deploy/Dockerfile -t josedario87/snatchgame:latest .
# O desde la carpeta deploy
cd deploy
cp dockerignore .dockerignore
docker build -t josedario87/snatchgame:latest ..
Push a DockerHub
docker login
docker push josedario87/snatchgame:latest
📊 Puertos utilizados
- 3000: Frontend (Vue.js)
- 2567: Backend (Colyseus WebSocket y API)
🌐 URLs del juego
- Frontend:
http://localhost:3000 - API:
http://localhost:2567/api - WebSocket:
ws://localhost:2567/ws - Monitor:
http://localhost:2567/colyseus
🔄 Actualización del deployment
- Hacer cambios en el código
- Reconstruir imagen:
docker build -t josedario87/snatchgame:latest . - Push a DockerHub:
docker push josedario87/snatchgame:latest - En el servidor:
docker pull josedario87/snatchgame:latest && docker restart snatchgame
📝 Notas importantes
- El archivo
dockerignoredebe renombrarse a.dockerignorecuando se use - Los scripts de
gcloud/requieren configuración específica del proyecto - La imagen Docker incluye tanto frontend como backend en un solo contenedor
- Se recomienda usar variables de entorno para configuración sensible