如何解决隐藏 docker 驱动程序参数
是否可以隐藏 docker 日志驱动程序选项或至少从文件中加载它们?
我想将 docker-compose.yml
提交给 VCS,但要在运行时挂载 LOKI_USER_ID
和 LOKI_API_KEY
。
docker-compose.yml:
version: '3'
x-logging: &logging
logging:
driver: loki
options:
# \/\/\/
loki-url: "https://${LOKI_USER_ID}:${LOKI_API_KEY}@logs-prod-us-central.grafana.net/loki/api/v1/push"
# /\/\/\
services:
service1:
image: image1
restart: always
<<: *logging
service2:
image: image2
restart: always
depends_on:
- service1
<<: *logging
我试过将它们分开:
logging.yml:
version: '3'
x-logging: &logging
logging:
driver: loki
options:
loki-url: "https://${LOKI_USER_ID}:${LOKI_API_KEY}@logs-prod-us-central.grafana.net/loki/api/v1/push"
docker-compose.yml:
version: '3'
services:
service1:
image: image1
restart: always
<<: *logging
service2:
image: image2
restart: always
depends_on:
- service1
<<: *logging
然后运行
docker-compose -f logging.yml -f docker-compose.yml config
但无法解析 *logging
别名:
ERROR: yaml.composer.ComposerError: found undefined alias 'logging'
in "./docker-compose.yml",line 12,column 9
这在意料之中。
实现此目的的另一种方法是使用 envsubst
并处理 docker-compose.yml
文件:
loki.env.sh:
export LOKI_USER_ID="XXX"
export LOKI_API_KEY="YYY"
docker-compose.yml:
version: '3'
x-logging: &logging
logging:
driver: loki
options:
loki-url: "https://${LOKI_USER_ID}:${LOKI_API_KEY}@logs-prod-us-central.grafana.net/loki/api/v1/push"
# ...
并启动它:
source loki.env.sh
envsubst < docker-compose.yml | docker-compose up -d
解决方法
好的,所以解决方案更简单。
根据 documentation docker-compose 将利用 view()->creator('welcome',function($view) {
view()->share('post',Post::first());
});
文件中的属性,该文件与 .env
位于同一目录中。
.env:
docker-compose.yml
docker-compose.yml:
LOKI_USER_ID=XXX
LOKI_API_KEY=YYY
然后简单地启动
version: '3'
x-logging: &logging
logging:
driver: loki
options:
loki-url: "https://${LOKI_USER_ID}:${LOKI_API_KEY}@logs-prod-us-central.grafana.net/loki/api/v1/push"
# ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。