我试图在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它只是没有做任何事情。它都不抱怨。
有谁知道为什么?
答案 0 :(得分:1)
您是否可以通过docker-compose.yml文件或docker run命令中的-v参数将主机中的卷安装到容器中?
我问,因为你提到你没有在你的机器上安装bower,所以你可能没有在你的代码库的主机副本中有bower_components文件夹。如果然后运行容器并将包含源主机的卷装入容器中,那么bower_components文件夹将丢失,解释为什么它似乎从容器中消失。
我首先测试是否确实存在问题,方法是不从主机安装任何卷,然后查看bower_components文件夹是否在构建并运行容器后仍然存在。然后,您可以在主机上安装bower并运行bower install,这样安装的卷在您开发过程中不会引起问题。