如何使用docker-compose在docker上安装gulp

Mr *_*xin 7 docker gulp boot2docker dockerfile docker-compose

我正在使用docker compose,这是我的yaml文件

web:
  dockerfile: Dockerfile-dev
  build: .
  command: gulp
  volumes:
    - .:/app
  ports:
    - '9001:9001'
Run Code Online (Sandbox Code Playgroud)

这是我的docker文件

FROM node:0.12.7

RUN npm install -g bower gulp

ADD . /app
WORKDIR /app

RUN bower install --allow-root
Run Code Online (Sandbox Code Playgroud)

然后我跑了

docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误

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**
Run Code Online (Sandbox Code Playgroud)

我尝试在RUN npm install gulp之前和之后添加该行以在WORKDIR /app本地安装它但我得到相同的错误

救命

has*_*sin 10

您需要运行npm install gulpAFTERWORKDIR /app,以便在本地安装gulp node_modules/gulp.但是你已经做到了并且遇到了同样的错误.这是因为在你的docker-compose-dev.yml,你将主机目录作为/app卷安装在docker容器中.因此,当您运行容器时,/ app目录中的本地更改将丢失.

您可以从主机中删除卷docker-compose-dev.ymlnpm install gulp在主机中运行卷.