Dockerfile和问题制作工作凉亭安装

时间:2015-10-27 13:26:30

标签: docker dockerfile bower-install

我试图在dockerfile的 node:4.1.2 docker container 上执行 bower install

我的dockerfile的一部分是这样的:

#Install bower to command line
RUN npm install -g bower

# Define the host folder that will contain the code
WORKDIR /application

# Copy src to application host folder**
ADD . /application

# RUN move to /application/public/webapp where there is a bower.json file and install it**
RUN cd public/webapp && bower install --allow-root --config.interactive=false

ENTRYPOINT ["npm"]
CMD ["start"]

构建它和向上它。

这个dockerfile没有显示bower_components文件夹,尽管显示:

Step 9 : RUN cd public/webapp && bower install --allow-root --config.interactive=false
 ---> Running in 937ad6c21887
/application/public/admintool
bower angular#1.4.7         not-cached git://github.com/angular/bower-angular.git#1.4.7
bower angular#1.4.7            resolve git://github.com/angular/bower-angular.git#1.4.7
bower angular#1.4.7           download https://github.com/angular/bower-angular/archive/v1.4.7.tar.gz
bower angular#1.4.7            extract archive.tar.gz
bower angular#1.4.7           resolved git://github.com/angular/bower-angular.git#1.4.7
bower angular#1.4.7            install angular#1.4.7

angular#1.4.7 bower_components/angular

如果我进入容器,凉亭被识别为命令(它安装了它)。如果我在容器内,则从/ application / public / webapp运行bower安装。从dockerfile它只是没有做任何事情。它都不抱怨。

有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

您是否可以通过docker-compose.yml文件或docker run命令中的-v参数将主机中的卷安装到容器中?

我问,因为你提到你没有在你的机器上安装bower,所以你可能没有在你的代码库的主机副本中有bower_components文件夹。如果然后运行容器并将包含源主机的卷装入容器中,那么bower_components文件夹将丢失,解释为什么它似乎从容器中消失。

我首先测试是否确实存在问题,方法是不从主机安装任何卷,然后查看bower_components文件夹是否在构建并运行容器后仍然存在。然后,您可以在主机上安装bower并运行bower install,这样安装的卷在您开发过程中不会引起问题。