Docker Compose w / Gulp - 找不到本地gulp

时间:2016-12-07 22:08:47

标签: node.js docker gulp docker-compose

我试图在Docker容器中使用gulp。

我有以下Dockerfile

FROM golang:alpine
RUN apk --update add --no-cache git nodejs
RUN npm install --global gulp
ENV GOPATH=/go PATH=$PATH:/go/bin
VOLUME ["/go/src/github.com/me/sandbox", "/go/pkg","/go/bin"]
WORKDIR /go/src/github.com/me/sandbox
CMD ["gulp"]

我有以下docker-compose.yml

version: '2'
services:
service:
    build: ./service
    volumes:
        - ./service/src/:/go/src/github.com/me/sandbox

docker-compose build已成功构建,但当我运行docker-compose up时,收到以下错误消息

Recreating sandbox_service_1
Attaching to sandbox_service_1
service_1  | [22:03:40] Local gulp not found in /go/src/github.com/me/sandbox
service_1  | [22:03:40] Try running: npm install gulp

我尝试了几种不同的方法来尝试修复它。

  • 还试图在全球和本地安装gulp-cli
  • 尝试使用gulp
  • 在本地安装npm install gulp
  • 尝试在npm install --global gulp
  • 之后移动WORKDIR
  • 尝试了不同的卷路径。

我的猜测是它与音量有关,因为当我摆脱与音量有关的任何事情时,它不会抱怨。

项目结构先生如下图所示:

enter image description here

3 个答案:

答案 0 :(得分:3)

您需要本地版本的gulp以及全局版本。

添加此行应解决您的问题

RUN npm i gulp

答案 1 :(得分:0)

这对我有用。

RUN npm install -g gulp
RUN npm link gulp

答案 2 :(得分:0)

如果你添加了 gulp 并且你已经构建了镜像。 您可能需要删除卷或容器。然后再次运行 docker compose up

docker volume rm hello
docker rm /redis

或在一个命令中

docker rm -v redis