Crear Docker Compose

This commit is contained in:
Marco Gallegos
2025-08-13 17:30:49 -06:00
parent 6b39f20ade
commit b658b9fd42
2 changed files with 33 additions and 14 deletions

View File

@@ -1,25 +1,29 @@
# 1. Imagen Base: Usamos una imagen oficial de Node.js, versión 18-alpine.
# 'alpine' es una versión muy ligera, ideal para producción.
# 1. Imagen base: Node.js 18 en Alpine (ligera)
FROM node:18-alpine
# 2. Directorio de Trabajo: Establecemos el directorio de trabajo dentro del contenedor.
# 2. Variable de entorno para producción
ENV NODE_ENV=production
# 3. Directorio de trabajo
WORKDIR /app
# 3. Copiar Archivos de Dependencias: Copiamos package.json y package-lock.json.
# Hacemos esto en un paso separado para aprovechar el caché de Docker.
# Si no cambian estos archivos, Docker no reinstalará las dependencias.
# 4. Copiar dependencias primero para aprovechar caché
COPY package*.json ./
# 4. Instalar Dependencias: Instalamos las dependencias del proyecto.
RUN npm install
# 5. Instalar dependencias de producción y limpiar caché
RUN npm ci --omit=dev && npm cache clean --force
# 5. Copiar el Resto de la Aplicación: Copiamos todos los demás archivos.
# Los archivos en .dockerignore serán excluidos automáticamente.
# 6. Copiar el resto de la aplicación
COPY . .
# 6. Exponer Puerto: Informamos a Docker que el contenedor escucha en el puerto 3000.
# 7. Crear usuario no root y darle permisos
RUN addgroup -S app && adduser -S app -G app \
&& chown -R app:app /app
USER app
# 8. Exponer el puerto
EXPOSE 3000
# 7. Comando de Inicio: El comando que se ejecutará cuando el contenedor inicie.
# Usamos 'npm start' que definiste en tu package.json.
# 9. Comando de inicio
CMD ["npm", "start"]

15
ap-pos/docker-compose.yml Normal file
View File

@@ -0,0 +1,15 @@
services:
ap-pos:
image: marcogll/ap-pos:latest
container_name: ap-pos
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
volumes:
- ap_pos_data:/app/data
volumes:
ap_pos_data: