Open Miles-Arts opened 1 year ago
Hola , como mencionas no se encuentra el paquete express, no se porque pero yo provando con una pc con docker hub de windows y otra de linux, la de windows me dio el error, la forma que lo correji fue directanmente agregar un Run para instalar inicialmente las dependencias (ademas que vi que al construir el contenedor se pone al final --build para tratar que se creee correctamente ya que suele haber problemas con las imagenes anteriores , o bueno como las cree muchas veces pues me genero error , anexo codigo
# FFOM define la imagen base que se utilizará para crear el contenedor de la aplicación
FROM node:18
# RUN ejecuta un comando en el contenedor (linux)
RUN mkdir -p /home/app
# Copy copia los archivos del ordenador maestro al contenedor
# El formato es: COPY <directorio origen> <directorio destino>
COPY . /home/app
# Instalar dependencias de node
RUN cd /home/app && npm install
# EXPOSE indica el puerto que se expondrá
EXPOSE 3000
# CMD indica el comando que se ejecutará al iniciar el contenedor, las rutas deben ser completas
CMD ["node", "/home/app/index.js"]
Asi mismo cuando intente hacer con nodemon no detectaba los cambios , este es igual problema de windows , se arregla teniendo que crear la importacion de los modulos, posteriormente esta carpeta node module se vincula con un volumen y se excluye en la sincronizacion del volumen de la carpeta (esto es porque cuando se sincroniza como en la carpeta que usamos no lo tiene lo borra), asi mismo se deve dar un comando al usar nodemon el cual es --legacy-watch, este para que haga bien la sincronizacion en windows, agrego codigos
version: "3.9"
services:
chanchito:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
links:
- monguito
volumes:
# Monta el código fuente, pero excluye node_modules
- .:/home/app:cached
- /home/app/node_modules
command: ["nodemon", "--legacy-watch", "index.js"]
monguito:
image: mongo
ports:
- "27017:27017"
environment:
- MONGO_INITDB_ROOT_USERNAME=nico
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
FROM node:18
# Instala nodemon globalmente
RUN npm install -g nodemon
# Crea y establece el directorio de trabajo
WORKDIR /home/app
# Copia los archivos de dependencias primero
COPY package*.json ./
# Instala las dependencias
RUN npm install
# Copia el resto de los archivos
COPY . .
# Exponer el puerto 3000
EXPOSE 3000
# Iniciar la aplicación con nodemon
CMD ["nodemon", "index.js"]
Hola Nico gracias por tu clase de Docker 😁
Al llamar a
node index.js
Me salta el error, pensé que era por "express" lo descargue aparte con npm y el error persiste, cambié las rutas de las carpetas por las que tengo en mi pc y nada XD cambie la versión de Node que están en los files, a la ultima y nada XD`
adjunto mi repo https://github.com/Miles-Arts/dockercurso
Gracias Nicolas por tu tiempo por cierto gran entrevista con Hdeleon 🎶