【问题标题】:How to include modified configuration files in a docker image?如何在 docker 镜像中包含修改后的配置文件?
【发布时间】:2016-12-07 17:58:06
【问题描述】:

我是 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

我想修改一些存储在xml 文件中的WSO2 configuration 并将其推送到生产环境。

我应该如何进行?这可能吗?我应该修改 docker 镜像吗?如果是怎么办?或者我应该将 WSO2 安装在经典的 github 存储库中,在那里修改 xml 并根据此存储库的内容重新创建 docker 映像?

【问题讨论】:

    标签: git docker wso2 docker-image


    【解决方案1】:

    你不需要为了改变一个xml而重新创建整个图像。 您可以通过卷或命令替换它。 例如,我已链接共享文件夹,您可以在容器上运行命令。 假设您在 /home/share 中有 Share 文件夹,并且它链接到 /c/Share 因此,您将新的 xml 文件放入 Share 中,容器也可以看到它。 接下来你运行这个命令:

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

    Docker exec 用于运行命令。 您可以使用以下命令进入控制台并运行多个命令:

    docker exec -it a5866aee4e90 bash
    

    【讨论】:

    • 你是怎么做那个文件夹共享的?
    • 将此配置添加到 yml 文件 - 卷: - /c/Users/richardkovachev/Documents/workspace/myskrill:/home/mb/myskrill:rw 或者如果您使用 docker 命令运行它:docker运行 -it --rm=true --name my_name -v /c/Users/richardkovachev/Desktop:/home/share
    【解决方案2】:

    docker cp:https://github.com/docker/docker/pull/6580

    步骤(假设您需要修改现有配置文件。如果没有,则从第 2 步开始):

    1. 将配置文件从容器复制到主机。 (这可以通过多种方式完成:docker cp、简单的控制台窗口复制粘贴、卷共享)
    2. 使用主机上的编辑器修改配置文件
    3. 将修改后的文件复制回带有docker cp的容器

    在使用此方法之前,请始终尝试通过环境变量应用修改。如果这不可行,那么您必须恢复编辑。

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2019-07-04
      • 2019-06-24
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2020-11-04
      相关资源
      最近更新 更多