从主机系统访问在CI映像构建期间创建的docker容器中的文件

时间:2019-10-25 12:24:46

标签: ruby-on-rails docker nginx

如何在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'

0 个答案:

没有答案