在 docker 运行时更新 wso2 deployment.toml 配置
update wso2 deployment.toml configuration at the docker runtime
我是 docker 的新手。
我可以使用 dockerfile 创建图像并成功调用 WSO2-API
我在 deployment.toml 文件中进行了硬编码配置
我想在 docker 运行时针对不同的环境更新此信息 - DEV、QA 等
deployment.toml文件内容-
[server]
offset = 22
如何在运行时更新 .toml 文件配置?
这里说你可以点赞-
offset = "${VariableName}"
但是我在我的 docker 文件中提到了什么来在运行时更新这些变量?
在 Dockerfile 中使用 ARG 选项定义变量。
示例:
ARG 变量名
现在可以在运行时给出值,如下所示。
docker build --build-arg VariableName=0 .
关于如何在docker文件中使用ARG的详细信息,请参考https://docs.docker.com/engine/reference/builder/#arg
I want to update this information at the docker runtime for different env - DEV,QA etc
有多种方法可以实现这一点,这里至少有两种我们在部署中常用的方法
为配置文件使用模板
基本上,想法是将 deployment.toml(或其他配置文件/文件夹)挂载为 Kubernetes 中的 configmap 值或纯 docker 中的卷。
对于每个环境,您可以使用任何部署工具(Maven、Puppet、Ansible、任何云 devops 等)来模板化配置。这种方法允许您在不需要新图像的情况下更新配置模板。
在入口点模板化配置
创建一个入口点脚本,它根据环境变量对配置进行模板化 - e。 G。使用 sed
实用程序),然后启动应用程序。然后在 Dockerfile
中使用该入口点
此方法不需要外部配置(卷、模板),但如果需要更新模板,则需要新图像。
编辑:
我之前没有看到在问题中提到的 deployment.toml 中使用 env 变量,这一定是 wso2 的新东西。但如果支持,那么只需在 pod 中指定 env 变量就可以让你的生活更轻松。 (哦,这是你可能错过的)
- 在Dockerfile中指定ENV值为默认值
- 运行 docker 与您定义的值(
-e
纯 docker 参数或在撰写或部署配置中定义的环境)
我是 docker 的新手。 我可以使用 dockerfile 创建图像并成功调用 WSO2-API
我在 deployment.toml 文件中进行了硬编码配置 我想在 docker 运行时针对不同的环境更新此信息 - DEV、QA 等
deployment.toml文件内容-
[server]
offset = 22
如何在运行时更新 .toml 文件配置?
这里说你可以点赞-
offset = "${VariableName}"
但是我在我的 docker 文件中提到了什么来在运行时更新这些变量?
在 Dockerfile 中使用 ARG 选项定义变量。 示例:
ARG 变量名
现在可以在运行时给出值,如下所示。
docker build --build-arg VariableName=0 .
关于如何在docker文件中使用ARG的详细信息,请参考https://docs.docker.com/engine/reference/builder/#arg
I want to update this information at the docker runtime for different env - DEV,QA etc
有多种方法可以实现这一点,这里至少有两种我们在部署中常用的方法
为配置文件使用模板
基本上,想法是将 deployment.toml(或其他配置文件/文件夹)挂载为 Kubernetes 中的 configmap 值或纯 docker 中的卷。
对于每个环境,您可以使用任何部署工具(Maven、Puppet、Ansible、任何云 devops 等)来模板化配置。这种方法允许您在不需要新图像的情况下更新配置模板。
在入口点模板化配置
创建一个入口点脚本,它根据环境变量对配置进行模板化 - e。 G。使用 sed
实用程序),然后启动应用程序。然后在 Dockerfile
此方法不需要外部配置(卷、模板),但如果需要更新模板,则需要新图像。
编辑:
我之前没有看到在问题中提到的 deployment.toml 中使用 env 变量,这一定是 wso2 的新东西。但如果支持,那么只需在 pod 中指定 env 变量就可以让你的生活更轻松。 (哦,这是你可能错过的)
- 在Dockerfile中指定ENV值为默认值
- 运行 docker 与您定义的值(
-e
纯 docker 参数或在撰写或部署配置中定义的环境)