2017-02-20 169 views
0

我使用泊坞版本1.13.1之间的数据量,在Windows 10共享两个搬运工集装箱

建立092cba3我有一个自詹金斯的容器,建立从GitHub代码的体积。

体积为/var/jenkins_home/workspace/myjob

我也有一个Apache容器,我想分享量。

docker-compose.yml文件是:

version: '2' 

services: 

    jenkins: 
    container_name: jenkins 
    image: jenkins:v1 
    environment: 
     JAVA_OPTS: "-Djava.awt.headless=true" 
     JAVA_OPTS: "-Djenkins.install.runSetupWizard=false" # Start jenkins unlocked 
    ports: 
    # - "50000:50000" # jenkins nodes 
     - "8686:8080" # jenkins UI 
    volumes: 
     - myjob_volume:/var/jenkins_home/workspace/myjob 

    apache: 
    container_name: httpd 
    image: httpd:2.2 
    volumes_from: 
     - jenkins 

volumes: 
    myjob_volume: 

我基本上希望詹金斯容器抓取在一个体积中的代码,则这将是由Apache(httpd的)容器中可见。因此,我对IDE中的代码进行的每次更改都会在Apache容器中显示,并推送到Github。卷是在Apache容器中创建的,但是当我在Jenkins容器中成功构建代码时,它不会出现在Apache的卷中。

编辑:docker-compose up -d启动2个容器后,

  • 我使他们的体积从Kitematic
  • 我改卷路径为Apache指向詹金斯量
  • 当我从Jenkins构建代码,Apache按照我的意愿来看它。

那么...我应该怎么做docker-compose文件呢?

回答

1

您正在使用volumes_from从您指定的容器“复制”安装定义。因此,myjob_volume将安装在Apache容器内的/var/jenkins_home/workspace/myjob。 Docker hub的官方Apache镜像(https://hub.docker.com/_/httpd/)使用/usr/local/apache2/htdocs/作为webroot。

要在该位置安装卷,请将docker-compose文件更新为如下所示;

version: '2' 

services: 

    jenkins: 
    container_name: jenkins 
    image: jenkins:v1 
    environment: 
     JAVA_OPTS: "-Djava.awt.headless=true" 
     JAVA_OPTS: "-Djenkins.install.runSetupWizard=false" # Start jenkins unlocked 
    ports: 
    # - "50000:50000" # jenkins nodes 
     - "8686:8080" # jenkins UI 
    volumes: 
     - myjob_volume:/var/jenkins_home/workspace/myjob 

    apache: 
    container_name: httpd 
    image: httpd:2.2 
    volumes: 
     - myjob_volume:/usr/local/apache2/htdocs/ 

volumes: 
    myjob_volume: 
+0

它必须是'/ usr/local/apache2/htdocs /'吗?不能只是像'/ var/test'这样的东西而且是同样的东西? –

+0

当然,这应该是可能的,但你必须提供一个定制的Apache配置文件 – thaJeztah

+0

这个答案中的例子基本上与[官方文档]中的双服务设置'数据卷'例子相同( https://docs.docker.com/compose/compose-file/#volume-configuration-reference)。 – hlovdal