diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a00db68 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,18 @@ +node_modules +*/node_modules +npm-debug.log +.git +.gitignore +*.log +.env +.env.local +.DS_Store +dist +*/dist +.vscode +.idea +*.md +*.mmd +*.pdf +*.png +.gitea \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e96e06 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM node:18-alpine + +WORKDIR /app + +# Copiar archivos de configuración +COPY package*.json ./ +COPY server/package*.json ./server/ +COPY client/package*.json ./client/ + +# Instalar dependencias +RUN npm install +RUN cd server && npm install +RUN cd client && npm install + +# Copiar código fuente +COPY . . + +# Compilar servidor y cliente +RUN cd server && npm run build +RUN cd client && npm run build + +# Instalar serve para servir archivos estáticos +RUN npm install -g serve + +# Script de inicio +COPY start.sh /app/start.sh +RUN chmod +x /app/start.sh + +# Exponer puertos +EXPOSE 3000 2567 + +# Ejecutar ambos servicios +CMD ["/app/start.sh"] \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..d51d6fd --- /dev/null +++ b/start.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# Iniciar el servidor Colyseus en background +echo "Starting Colyseus server..." +cd /app/server && node dist/index.js & + +# Esperar un momento para que el servidor inicie +sleep 2 + +# Servir el cliente compilado +echo "Starting client server..." +cd /app/client && serve -s dist -l 3000 & + +# Mantener el contenedor corriendo +wait \ No newline at end of file