![](/img/trans.png)
[英]How to get the environment variable from .env file on to a docker-compose.yml?
[英]Get or set env variable in docker-compose.yml file
我有一个docker-compose.yml
文件,我在那里定义:
extra_hosts:
- "localhost:${MY_MACHINE_IP}"
如果我先将MY_MACHINE_IP定义为环境var,它就可以工作。
我想要实现的是执行以下操作:
extra_hosts:
- "localhost:<get MY_MACHINE_IP from env if it exists, if not set MY_MACHINE_IP env variable with value <docker-machine-ip>>"
换句话说:我想在extra_hosts部分定义它,如果已经指定了MY_MACHINE_IP,则获取它,如果没有 - 设置此env。 变量值=我的docker machine ip。
可能吗?
你可以使用ruamel.dcw
包( dcw
for Docker Compose Wrapper,免责声明:我是该软件包的作者)。 它允许您在docker-compose.yaml
文件中创建一个包含关键user-data
的部分,该文件在将文件传递给普通的docker-compose
之前被删除。 该部分可能如下所示:
user-data:
author: Your Name <your-name@youremail.com>
description: container for postfix/submission
env-defaults:
PORT: 587 # override during development
NAME: submission
DOCKER_BASE: /data0/DATA
然后你可以在文件的其余部分使用{PORT}
, {NAME}
和{DOCKER_BASE}
,并可以选择用环境变量覆盖这些默认值。
该实用程序还会写出一个文件.dcw_env_vars.inc
,您可以将其复制到容器和源中,以便在Dockerfile
RUN
脚本中获取相应的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.