在$ PATH中找不到Docker Compose gulp

时间:2017-05-23 16:49:51

标签: node.js docker docker-compose

我刚刚开始学习docker-compose而我正在使用nodejs图像。我想安装gulp来创建一些任务,让其中一个在后台工作。

当我跑步时:docker-compose run --rm -d server gulp watch-less

我收到此错误:ERROR: oci runtime error: container_linux.go:247: starting container process caused "exec: \"gulp\": executable file not found in $PATH"

这是我的档案:

# Dockerfile
FROM node:6.10.2

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app
RUN npm install --quiet

COPY . /usr/src/app

CMD ["npm", "start"]
# docker-compose.yml
version: "2"
services:
  server:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - ./:/usr/src/app

我还有一个.dockerignore来忽略node_modules文件夹和npm-debug.log

编辑:

当我运行docker-compose run --rm server npm install package-name时,我没有任何问题并且已安装软件包。

3 个答案:

答案 0 :(得分:1)

尝试在Dockerfile中添加gulp install:

# Dockerfile
FROM node:6.10.2

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

RUN npm install -g gulp
COPY package.json /usr/src/app
RUN npm install --quiet

COPY . /usr/src/app

CMD ["npm", "start"]

答案 1 :(得分:0)

我找到了一个有效但可能不是最佳解决方案的解决方案。我创建了一个在gulp上运行package.json任务的脚本,如果我运行:

docker-compose run --rm server npm run gulp_task它有效并且做了它必须做的事情。

答案 2 :(得分:0)

我发现只是通过

引用gulp

./node_modules/.bin/gulp

而不是直接工作正常。默认情况下,。/ node_modules / .bin不在路径中。另一个选择是将该dir添加到PATH。