mirror of
https://github.com/marcogll/ap_pos.git
synced 2026-01-13 13:15:16 +00:00
Crear Docker Compose
This commit is contained in:
@@ -1,25 +1,29 @@
|
|||||||
# 1. Imagen Base: Usamos una imagen oficial de Node.js, versión 18-alpine.
|
# 1. Imagen base: Node.js 18 en Alpine (ligera)
|
||||||
# 'alpine' es una versión muy ligera, ideal para producción.
|
|
||||||
FROM node:18-alpine
|
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
|
WORKDIR /app
|
||||||
|
|
||||||
# 3. Copiar Archivos de Dependencias: Copiamos package.json y package-lock.json.
|
# 4. Copiar dependencias primero para aprovechar caché
|
||||||
# Hacemos esto en un paso separado para aprovechar el caché de Docker.
|
|
||||||
# Si no cambian estos archivos, Docker no reinstalará las dependencias.
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# 4. Instalar Dependencias: Instalamos las dependencias del proyecto.
|
# 5. Instalar dependencias de producción y limpiar caché
|
||||||
RUN npm install
|
RUN npm ci --omit=dev && npm cache clean --force
|
||||||
|
|
||||||
# 5. Copiar el Resto de la Aplicación: Copiamos todos los demás archivos.
|
# 6. Copiar el resto de la aplicación
|
||||||
# Los archivos en .dockerignore serán excluidos automáticamente.
|
|
||||||
COPY . .
|
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
|
EXPOSE 3000
|
||||||
|
|
||||||
# 7. Comando de Inicio: El comando que se ejecutará cuando el contenedor inicie.
|
# 9. Comando de inicio
|
||||||
# Usamos 'npm start' que definiste en tu package.json.
|
|
||||||
CMD ["npm", "start"]
|
CMD ["npm", "start"]
|
||||||
|
|
||||||
|
|||||||
15
ap-pos/docker-compose.yml
Normal file
15
ap-pos/docker-compose.yml
Normal 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:
|
||||||
|
|
||||||
Reference in New Issue
Block a user