7

I am using docker compose and this is my yaml file

web:
  dockerfile: Dockerfile-dev
  build: .
  command: gulp
  volumes:
    - .:/app
  ports:
    - '9001:9001'

and here is my docker file

FROM node:0.12.7

RUN npm install -g bower gulp

ADD . /app
WORKDIR /app

RUN bower install --allow-root

Then i run

docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up

But i get the following 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**

I have tried adding the line RUN npm install gulp before and after WORKDIR /app to get it installed locally but i get the same error

Help

Mr Mixin
  • 893
  • 3
  • 10
  • 15
  • I know nothing about gulp, but your Dockerfile should end with a `CMD` or `ENTRYPOINT` I think, see https://docs.docker.com/reference/builder/#cmd and https://docs.docker.com/reference/builder/#entrypoint – user2915097 Oct 23 '15 at 09:35

2 Answers2

10

You need to run npm install gulp AFTER WORKDIR /app, so that gulp is installed locally in node_modules/gulp. But you already did that and having the same error. It's because in your docker-compose-dev.yml, you are mounting host directory as /app volume inside docker container. So local changes in /app directory is lost when you are running the container.

You can either remove volumes from docker-compose-dev.yml or run npm install gulp in host machine.

hassansin
  • 16,918
  • 3
  • 43
  • 49
0

You can create startup.sh

npm install bower gulp
bower install --allow-root

(or whatever you need to run when container fires) then your Dockerfile should execute startup.sh

...
CMD ["/startup.sh"]

the startup script will be executed AFTER the dir is mounted by docker-compose.

I would also suggest to mount node_modules in the temporary file system declaring in the docker-compose.yml:

volumes:
- .:/app
- /app/node_modules
lrkwz
  • 6,105
  • 3
  • 36
  • 59