2016-08-02 52 views
3

我是Docker的新手。 devop同事在github存儲庫中創建了一個WSO2 Docker鏡像。他使用這些圖像來創建舞臺和生產實例。如何將修改後的配置文件包含在泊塢窗圖像中?

docker-compose.yml是:

#openssl req  -newkey rsa:2048 -nodes -keyout domain.key  -x509 -days 365 -out domain.crt 

version: '2' 

services: 
    mysql: 
    image: mysql:5.7.10 
    ports: 
     - "3306:3306" 
    volumes: 
     - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d 
    environment: 
     - MYSQL_DATABASE=userdb 
     - MYSQL_USER=dbwso2am 
     - MYSQL_PASSWORD=dbwso2am 
     - MYSQL_ROOT_PASSWORD=dbwso2am 
    wso2am: 
    image: salte/wso2am:1.9.1 
    depends_on: 
     - mysql 
    volumes: 
     - ./keys:/keys 
    environment: 
     - VIRTUAL_HOST=apimanager.qa.xxx.build 
     - VIRTUAL_PORT=9443 
     - VIRTUAL_PROTO=https 
     - OFFSET=3 
     - EXTERNAL_HOSTNAME=apimanager.qa.xxx.build 
     - DATABASE_HOSTNAME=mysql 
     - DATABASE_PORT=3306 
     - DATABASE_USER=dbwso2am 
     - DATABASE_PASSWORD=dbwso2am 
     - PUBLIC_CERTIFICATE=/keys/domain.crt 
     - PRIVATE_KEY=/keys/domain.key 
     - PRIVATE_KEY_PASSWORD=wso2am 
     - ADMIN_PASSWORD=admin 

我想修改一些WSO2 configuration存儲在某些xml文件,並將它推到生產。

我該如何繼續?這可能嗎?我應該修改泊塢窗圖像嗎?如果是的話如何?或者我應該將WSO2安裝在經典的github存儲庫中,在那裏修改xml並根據此存儲庫的內容重新創建Docker鏡像?

回答

1

您不需要重新創建整個圖像來更改一個xml。 您可以通過卷或命令來替換它。 例如,我已鏈接共享文件夾,您可以在容器上運行命令。 假設你在/ home/share中有共享文件夾,並且鏈接到/ c/Share 所以你把你的新的xml文件放在Share中,容器也可以看到它。 下運行此命令:

docker exec a5866aee4e90 cp -i /home/share/some.xml /home/the/path/you/chose 

泊塢EXEC用於運行命令。 你可以用這個進入控制檯,並運行多個命令:

docker exec -it a5866aee4e90 bash 
+0

你如何做文件夾共享的東西? –

+1

添加到YML文件這個配置 - 卷: -/C /用戶/ richardkovachev /文件/工作區/ myskrill:/家庭/ MB/myskrill:RW 或者如果你泊塢窗命令運行它: 搬運工運行-it --rm = true --name my_name -v/c/Users/richardkovachev/Desktop:/ home/share – TreantBG

0

docker cphttps://github.com/docker/docker/pull/6580

步驟(假設您需要修改現有的配置文件,如果沒有,那麼在第2步開始。):

  1. 將配置文件從容器中複製到主機。 (這可以通過多種方式來實現:docker cp,簡單的控制檯窗口複製粘貼,體積共享)
  2. 修改配置文件與上位
  3. 修改後的文件複製回容器docker cp
  4. 上一個編輯器

在您訴諸此之前,請始終嘗試通過環境變量應用修改。如果這是不可能的,那麼你必須恢復編輯。