Docker 是否可以为不同的服务使用不同的.env?

Docker 是否可以为不同的服务使用不同的.env?,docker,docker-compose,Docker,Docker Compose,在我的docker-compose.yml中,如果有多个.env文件,每个服务一个文件,那就更好了。有没有办法指定要使用的不同文件名?能否在个人服务层面上做到这一点 我试图使用env_file标记,不幸的是,这设置了在Dockerfile和运行时使用的变量。另一方面,.env文件设置要在docker compose.yml中展开的变量。是,使用env_文件服务选项 您可以使用“env_file”选项将多个环境变量从外部文件传递到服务的容器,就像docker run--env file=file…

在我的docker-compose.yml中,如果有多个.env文件,每个服务一个文件,那就更好了。有没有办法指定要使用的不同文件名?能否在个人服务层面上做到这一点


我试图使用
env_file
标记,不幸的是,这设置了在Dockerfile和运行时使用的变量。另一方面,.env文件设置要在docker compose.yml中展开的变量。

是,使用
env_文件
服务选项

您可以使用“env_file”选项将多个环境变量从外部文件传递到服务的容器,就像docker run--env file=file…:


源文档:

不幸的是,无法为
.env
文件指定替代名称。我也想把它换掉,但你可以看到它直接编码到
.env


您是否有理由要为每个服务拆分替换变量?感觉您应该能够将所有服务的变量放入一个
.env
文件中。

这就是我的想法,不幸的是,这设置了Dockerfile和运行时使用的环境变量。.env文件设置可以在docker compose中而不是Dockerfile中展开的变量。我编辑了我的问题以反映这一点。我认为这只是个人偏好,但最好有一个选项,这样我就可以通过更改docker compose中的单个文件名,为单个服务切换docker compose中扩展的变量。此外,我不喜欢将配置隐藏在点文件中,尽管我可以使用符号链接来解决这个问题。也就是说,我只是按照您的建议为我的所有服务构建一个文件。
web:
  env_file:
    - web-variables.env