【发布时间】:2016-07-14 11:10:31
【问题描述】:
我正在为我们的 fluentd 创建一个 docker 镜像。 该图像包含一个名为 http_forward.conf 的文件 它包含:
<store>
type http
endpoint_url ENDPOINTPLACEHOLDER
http_method post # default: post
serializer json # default: form
rate_limit_msec 100 # default: 0 = no rate limiting
raise_on_error true # default: true
authentication none # default: none
username xxx # default: ''
password xxx # default: '', secret: true
</store>
所以这就是我们的形象。但是我们希望将图像用于我们所有的环境。使用环境变量指定。
所以我们为我们的环境创建一个环境变量:
ISSUE_SERVICE_URL = http://xxx.dev.xxx.xx/api/fluentdIssue
这个 env 变量包含我们开发环境中的 dev、uat 上的 uat 等。 比我们想用我们的环境变量的值替换我们的 ENDPOINTPLACEHOLDER 。在 bash 中我们可以使用:
sed -i -- 's/ENDPOINTPLACEHOLDER/'"$ISSUE_SERVICE_URL"'/g' .../http_forward.conf
但是如果我们想在我们的 docker 容器中使用这个命令,我们应该如何/什么时候执行这个命令呢? (我们不想挂载这个文件)
【问题讨论】: