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

The*_*boy 5 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"]
Run Code Online (Sandbox Code Playgroud)

我有以下内容docker-compose.yml

version: '2'
services:
service:
    build: ./service
    volumes:
        - ./service/src/:/go/src/github.com/me/sandbox
Run Code Online (Sandbox Code Playgroud)

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

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

  • 还尝试过gulp-cli全局和本地安装
  • gulp尝试在本地安装npm install gulp
  • 尝试移动npm install --global gulpWORKDIR
  • 尝试了不同的卷路径。

我的猜测是它与卷有关,因为当我摆脱与卷有关的任何内容时,它不会抱怨。

Mr项目结构如下图所示:

在此输入图像描述

Luk*_*ski 5

这对我有用。

RUN npm install -g gulp
RUN npm link gulp
Run Code Online (Sandbox Code Playgroud)


nic*_*ank 3

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

添加这一行应该可以解决您的问题

RUN npm i gulp
Run Code Online (Sandbox Code Playgroud)

  • 在 docker 内安装 gulp 存在错误,请改用 gulp-cli。`npm 错误!代码 E404 npm 错误!404 未找到:natives@https://registry.npmjs.org/natives/-/natives-1.1.4.tgz ` (2认同)