2017-02-20 167 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