如何从dockerfile运行gulp任务

如何从dockerfile运行gulp任务,docker,gulp,dockerfile,Docker,Gulp,Dockerfile,我正试图从Dockerfile中运行gulp任务。这是我的文件 # # Node.js w/ Bower & Grunt Dockerfile # # https://github.com/digitallyseamless/docker-nodejs-bower-grunt # # Pull base image. FROM library/node:4 MAINTAINER Digitally Seamless <docker@digitallyseamless.com>

我正试图从Dockerfile中运行gulp任务。这是我的文件

#
# Node.js w/ Bower & Grunt Dockerfile
#
# https://github.com/digitallyseamless/docker-nodejs-bower-grunt
#

# Pull base image.
FROM library/node:4
MAINTAINER Digitally Seamless <docker@digitallyseamless.com>

# Install Bower & Grunt
RUN npm install -g bower grunt-cli && \
    echo '{ "allow_root": true }' > /root/.bowerrc

RUN npm install gulp -y
RUN gulp ng-config --env development

# Define working directory.
WORKDIR /data
COPY . /data


# Define default command.
EXPOSE 7000 
CMD ["bash"]
其中,ng config是在gulpfile.js文件中定义的我的gulp任务

当我尝试用上面提到的Dockerfile内容构建图像时,我会得到类似gulp:NotFound这样的错误

我不确定gulp是否没有正确安装,或者为什么它不能识别gulp命令。 你们能帮忙吗

编辑:

如果我尝试在全局范围内安装gulp,我的构建将失败,并出现以下输出

Sending build context to Docker daemon  7.893MB
Step 1/9 : FROM library/node:4
 ---> 3fb5ca8fcd8e
Step 2/9 : MAINTAINER Digitally Seamless <docker@digitallyseamless.com>
 ---> Using cache
 ---> 242154cec3ce
Step 3/9 : RUN npm install -g bower grunt-cli &&     echo '{ "allow_root": true }' > /root/.bowerrc
 ---> Using cache
 ---> b73fc7831a4a
Step 4/9 : RUN npm install -g gulp -y
 ---> Using cache
 ---> b498e61bfb8e
Step 5/9 : RUN gulp ng-config --env development
 ---> Running in 38d2e7f208cc
[08:21:29] Local gulp not found in /
[08:21:29] Try running: npm install gulp
The command '/bin/sh -c gulp ng-config --env development' returned a non-zero code: 1
将生成上下文发送到Docker守护程序7.893MB
步骤1/9:从库/节点:4
--->3fb5ca8fcd8e
步骤2/9:维护者数字无缝
--->使用缓存
--->242154cec3ce
步骤3/9:运行npm安装-g bower-grunt cli&&echo'{“allow_-root”:true}'>/root/.bowerrc
--->使用缓存
--->b73fc7831a4a
步骤4/9:运行npm安装-g gulp-y
--->使用缓存
--->b498e61bfb8e
步骤5/9:运行gulp ng配置--环境开发
--->在38d2e7f208cc中运行
[08:21:29]在中未找到局部吞咽/
[08:21:29]尝试运行:npm安装gulp
命令'/bin/sh-c gulp ng config--env development'返回一个非零代码:1

您必须在全局和本地安装gulp:

RUN npm install -g gulp
RUN npm install gulp

有关原因的讨论,请参阅。

我也尝试了gulp的全局安装,但docker构建过程仍然失败。请参阅张贴的编辑部分。但是,当从dockerfile中删除gulp ng confg命令并创建docker映像时,会创建映像,我可以运行该映像,当我将docker exec放入正在运行的容器中并再次运行gulp ng config--env命令时,它会成功执行,可能是从dockerfile安装了gulp,只是由于某种原因,在DockerfileThank@Meoma中无法识别gulp命令,在全局和本地安装之后,我可以从Dockerfile运行gulp任务
RUN npm install -g gulp
RUN npm install gulp