我正试图从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,这样在开发过程中安装的卷就不会引起问题。