如何在 docker 镜像中包含修改后的配置文件?

2024-01-06

我是 Docker 新手。一位 Devop 同事在 github 存储库中创建了一个 WSO2 docker 镜像。他使用此类图像来创建暂存和生产实例。

The docker-compose.yml is:

#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配置 https://docs.wso2.com/display/AM1100/Configuring+Caching存储在一些xml文件并将其投入生产。

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


您不需要仅仅为了更改一个 xml 就重新创建整个图像。 您可以通过卷或命令来替换它。 例如,我有链接的共享文件夹,您可以在容器上运行命令。 假设您在 /home/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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 docker 镜像中包含修改后的配置文件? 的相关文章

  • 更改先前提交的作者姓名:快进推送被拒绝

    我最近在 GitHub 上打开了一个存储库 我是 Git 新手 与新人一样 我使用默认名称和电子邮件进行提交 按照最佳菜鸟传统 我发现五次提交为时已晚 现在乐趣开始了 因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息 美好的 我基
  • 为别名命令添加“git help”?

    我已经实现了一个 Git 命令并使用 git 别名将其连接到 Git 但是有没有办法连接 Git 帮助 我在 Windows 上运行 如果我发出git help mycmd我收到一个弹出窗口 告诉我 Git 找不到 git mycmnd h
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 尝试配置 GIT 时 Eclipse 没有响应

    Windows 10 专业版 64 位SSD金士顿 i5 4690Eclipse 版本 全部工作空间 空问题 每次我尝试配置 TEAM gt GIT gt 配置或尝试导入 创建本地 远程 git 时 Eclipse 都会冻结 直到我强制用任
  • 如何检查Docker中是否安装了python包?

    我使用Dockerfile成功构建了一个容器 但是 我的代码在容器中不起作用 如果我手动安装所有软件包 它确实有效 我假设我搞砸了一些导致 docker 没有正确安装软件包的事情 所以 我想检查Docker容器中是否安装了python包 最
  • 如何将docker postgres镜像10.3中的pg_restore升级到10.5

    我使用 tableplus 作为我的一般管理员 目前使用 10 3 版本的 docker postgres 镜像进行生产和本地主机开发 因为tableplus将他们的postgres 10驱动程序升级到了10 5 所以我不能再使用pg re
  • 如何获取 git 存储库中所有文件的计数?

    如何获取 git 存储库中当前所有文件的计数 您可以使用以下命令获取 git 存储库中所有跟踪文件的计数 git ls files wc l 命令分解 The git ls files命令本身打印出存储库中所有跟踪文件的列表 每行一个 Th
  • Heroku 应用程序上的 Nodejs Express EACCES 0.0.0.0:80

    我正在尝试在他们的网站上新创建的 Heroku 应用程序上运行 Node 应用程序 我按照他们的步骤操作 但在显示应用程序状态时仍然遇到错误 我跟着Node js 入门 https devcenter heroku com articles
  • Bash 实例未嵌套在 Dockerfile `RUN` 中

    嵌套 bash 实例会递增 SLVL 环境变量 http tldp org LDP abs html internalvariables html http tldp org LDP abs html internalvariables h
  • 使用 docker for windows 工具箱切换到 Windows 容器

    我已经在 Windows 7 64 位操作系统上安装了 docker for windows toolbox 我无法使用 docker 菜单切换到 Windows 容器 因为 docker 图标在系统托盘中不可用 Docker 服务也不可用
  • docker 容器中的“(pygame parachute)分段错误”

    尝试在 docker 容器中使用 pygame 时出现以下错误 我想从容器中获取显示 Fatal Python error pygame parachute Segmentation Fault 重现 Docker已安装 docker ru
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • 每次我执行 docker compose up 时,Docker 都会创建一个新卷

    我有一个 docker compose 文件 可以启动多个服务 我刚刚收到一条错误消息 指出我的磁盘空间不足 因此我输入 docker system df 并看到我有 21 个卷 如果我有 3 个 docker 容器 每个容器都附加一个卷
  • 无法访问通过 NodePort 暴露的 Kubernetes 服务

    我正在使用 minikube 在最新的 MacOS 上测试 kubernetes 这是我的相关 YAML 命名空间 yml apiVersion v1 kind Namespace metadata name micro labels na
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • WSO2 ESB 的自动 NTLM 身份验证

    我有一个 WCF Web 服务位于使用 NTLM 身份验证保护的客户端 IIS 服务器上 我无法控制该服务器上的身份验证配置 我需要将我的 WSO2 ESB 服务器与此服务集成 但我找不到让 ESB 自动进行身份验证的方法 我已成功通过 E
  • 没有特权访问的 Docker VPN IPSec 客户端

    我有一个 mysql 数据库 只有在建立 VPN 连接后才能访问 IpSec shared secret 用户名 密码 所以我想运行一个隔离的docker容器 它将建立此连接并以某种方式代理 公开mysql端口 以便其他容器可以连接到它而不
  • git merge --squash 和 gitcherry-pick 有什么区别?

    如果我在标准的主功能工作流程中工作 那么将功能分支压缩到主功能分支和将其挑选到主功能分支之间有什么区别 分支示例 m1 m2 master f1 f2 feature 我认为两者都有相同的输出 即 m1 m2 m3 master f1 f2
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull

随机推荐