我正在尝试从Dockerfile运行gulp任务。这是我的Dockerfile
#
# Node.js w/ Bower & Grunt Dockerfile
#
# https://github.com/digitallyseamless/docker-nodejs-bower-grunt
#
# Pull base image.
FROM library/node:4
MAINTAINER Digitally Seamless <[email protected]>
# 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"]
请注意,在上面的Dockerfile中,我正在尝试安装gulp并运行gulp任务,如下所示:
RUN npm install gulp -y
RUN gulp ng-config --env development
其中ng-config是我在gulpfile.js文件中定义的gulp任务。
当我尝试使用上述Dockerfile内容构建镜像时,出现类似gulp的错误:未找到
我不确定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 <[email protected]>
---> 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
最佳答案
您必须在本地全局安装gulp 和本地:
RUN npm install -g gulp
RUN npm install gulp
有关原因的讨论,请参见this post。
关于docker - 如何从dockerfile运行gulp任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46559549/