Docker compose 是否有任何干净的方法将env_文件附加到自动生成的docker文件中?

Docker compose 是否有任何干净的方法将env_文件附加到自动生成的docker文件中?,docker-compose,ansible,Docker Compose,Ansible,我计划使用Ansible自托管比特管理员。在ansible playbook的执行过程中,将根据配置文件参数和其他参数在远程生成文件层次结构和docker compose文件。最后,将执行此docker文件以生成容器。 我的个人服务器基础设施已经提供了一个与letsencrypt相结合的nginx代理服务器。为了使用这个服务,我需要在docker compose文件的“主容器”中添加几个特定的环境参数。我在一个外部文件中收集了它们,现在我需要将这个外部文件添加到docker文件中。我想动态地做。

我计划使用Ansible自托管比特管理员。在ansible playbook的执行过程中,将根据配置文件参数和其他参数在远程生成文件层次结构和docker compose文件。最后,将执行此docker文件以生成容器。 我的个人服务器基础设施已经提供了一个与letsencrypt相结合的nginx代理服务器。为了使用这个服务,我需要在docker compose文件的“主容器”中添加几个特定的环境参数。我在一个外部文件中收集了它们,现在我需要将这个外部文件添加到docker文件中。我想动态地做。到目前为止,我一直在使用ansible任务:
-name:将nginx.env作为env文件附加到自动生成的docker文件中
shell:'sed-i“\$a\\\\\\-../env/nginx.env”/srv/bitwarden/bwdata/docker/docker compose.yml'

要转换:
。。。
*其他容器*
...
nginx:
...
*不重要参数*
...
环境文件:
-../env/uid.env(EOF)

进入
。。。
*其他容器*
...
nginx:
...
*不重要参数*
...
环境文件:
-../env/uid.env
-../env/nginx.env(EOF)

但是我对这个
sed
解决方案不满意,因为Bitwarden可以修改这个自动生成的文件(附加到末尾最终会失败..而且我也不能真正使用任何正则表达式,因为它们可以更改文件的单个组件的结构等..)。
ansible是否有任何内置的安全方法来实现这种精确行为?


编辑:我正在寻找类似这样的东西:
匹配附加到env_文件

合并env文件难道不更容易吗?@NicoHaase您是否考虑将uid.env与nginx.env的内容合并?我对此不确定,因为其他容器也使用此uid.env。我可能可以这样做,但如果可以的话,我还是会选择另一种方式。使用
lineinfle
而不是
sed
,后者更健壮且幂等。。。一