nodejs - Cómo instalar gulp en una ventana acoplable con docker-componer
docker hub node dockerfile (2)
Estoy usando docker compose y este es mi archivo yaml
web:
dockerfile: Dockerfile-dev
build: .
command: gulp
volumes:
- .:/app
ports:
- ''9001:9001''
y aquí está mi archivo docker
FROM node:0.12.7
RUN npm install -g bower gulp
ADD . /app
WORKDIR /app
RUN bower install --allow-root
Entonces corro
docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up
Pero me sale el siguiente error
Recreating web_web_1...
Attaching to web_web_1
web_1 | [07:39:08] Local gulp not found in /app
web_1 | [07:39:08] Try running: npm install gulp
web_web_1 exited with code 1
Gracefully stopping... (press Ctrl+C again to force)**strong text**
He intentado agregar la línea RUN npm install gulp
antes y después de WORKDIR /app
para instalarlo localmente pero recibo el mismo error
Ayuda
npm install gulp
ejecutar npm install gulp
DESPUÉS DE WORKDIR /app
, para que gulp se instale localmente en node_modules/gulp
. Pero ya lo hiciste y tienes el mismo error. Es porque en su docker-compose-dev.yml
, está montando el directorio de host como volumen de /app
dentro del contenedor de Docker . Así que los cambios locales en el directorio / app se pierden cuando está ejecutando el contenedor.
Puede eliminar volúmenes de docker-compose-dev.yml
o ejecutar npm install gulp
en el equipo host.
Puede crear startup.sh
npm install bower gulp
bower install --allow-root
(o lo que sea que necesite ejecutar cuando el contenedor se dispara), entonces su Dockerfile debería ejecutar startup.sh
...
CMD ["/startup.sh"]
el script de inicio se ejecutará DESPUÉS de que el directorio esté montado por docker-compose.
También sugeriría montar node_modules en el sistema de archivos temporales que declara en docker-compose.yml:
volumes:
- .:/app
- /app/node_modules