2017-10-04 99 views
1

我想从我的Dockerfile运行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 <[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注意,我试图按以下步骤安装杯和运行一饮而尽任务:

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

,其中n配置,那么我一饮而尽任务gulpfile.js文件中定义。

当我尝试建立图像与上述Dockerfile内容,我得到错误,如一饮而尽:找不到

我不知道如果没有得到正确安装一饮而尽或为什么不承认吞气命令。 你们能帮忙吗?

编辑:

如果我试图在全球范围内安装一饮而尽,我的生成失败与下面的输出。

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 

回答

1

您必须安装全球本地一饮而尽:

RUN npm install -g gulp 
RUN npm install gulp 

了有关原因的讨论见this post

+0

我尝试了gulp的全局安装,但docker构建过程仍然失败。请参阅发布的问题编辑部分。然而,当从dockerfile中移除gulp ng-confg命令并创建docker镜像时,会创建镜像,并且我可以运行该镜像,并且当我将exec docker exec放入正在运行的容器中并再次运行gulp ng-config --env命令时它得到执行成功,可能是从dockerfile安装吞噬,这只是因为某些原因在dockerfile中无法识别gulp命令 – Rahul

+0

谢谢@Meoma,在全局和本地安装之后,我可以从Dockerfile运行吞吐任务 – Rahul