如何在docker容器内的映像构建期间放置的主机系统文件中访问文件?
我们通过Gitlab CI / CG管道构建docker映像。在构建过程中,诸如404页面等文件将放置在“ / app / public /”文件夹中。在我们的生产服务器上,nginx在主机系统上运行,需要访问该文件。
使用docker bind挂载将主机系统/srv/web/public/:/app/public
中的文件夹挂载到容器中时,文件夹/app/public
中的内容不再可用。
目前,我们通过ansible将此隐藏文件复制到/srv/web/public/
,但这是一个丑陋的解决方法。
version: '2'
services:
web:
image: registry.gitlab.com/project_web/web/master:latest
container_name: web
command: bundle exec rails s
entrypoint: /web/rails-entrypoint.sh
volumes:
- /srv/web/public/:/web/public
- /srv/web/log/:/web/log
env_file: .env
ports:
- '127.0.0.1:3333:3000'