Dockerfile和问题使工作bower安装



我正试图从dockerfile在节点:4.1.2 docker容器上执行bower-install

我的部分案卷是这样的:

#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_contensions文件夹

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

如果我进入容器,bower将被识别为命令(它安装了它)。如果Im在容器中,则从/application/public/webapp运行bower-install即可。从dockerfile来看,它什么都没做。它也没有抱怨。

有人知道为什么吗?

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

我问这个问题是因为你提到你的机器上没有安装bower,所以你的代码库的主机副本中可能没有bower_components文件夹。如果随后运行容器并将主机上包含源的卷装载到容器中,则bower_components文件夹将丢失,这解释了它似乎从容器中消失的原因。

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

最新更新