gpt4 book ai didi

docker-compose 提供环境变量的可扩展方式

转载 作者:行者123 更新时间:2023-12-01 10:23:35 24 4
gpt4 key购买 nike

我正在寻找一种可扩展的解决方案,以解决容器化应用程序拥有众多可能环境的问题。假设我正在创建一个 Web 应用程序,并且我有通常的部署环境,开发、测试、生产,但我也有针对不同客户端的应用程序的多个实例,client1、client2、client3

如果我必须创建单独的 docker-compose 文件,这很快就会变得一团糟:

docker-compose-client1-develop.yml
docker-compose-client1-testing.yml
docker-compose-client1-production.yml
docker-compose-client2-develop.yml
...

将特定于客户端的配置分解为 .env 文件和 dockers 变量替换让我完成了大部分工作,我现在可以拥有一个 docker-compose.yml 文件就这样做:

services:
webapp:
image: 'myimage:latest'
env_file:
- ./clients/${CLIENT}.env # client specific .env file
environment:
- DEPLOY # develop, testing, production

所以现在我只需要在运行 docker-compose up 时设置 CLIENTDEPLOY 环境变量,这很好,但是我'我想知道一种将这些环境变量传递到 docker-compose 的便捷方法。有可能(至少在开发期间)进行大量的上下文切换。有没有一种整洁的方法可以在每次运行时将不同的 CLIENTDEPLOY 环境变量传递给 docker-compose up

最佳答案

您要实现的是每个命令设置环境变量。

您在 Linux 上运行吗?看看env命令。只需像这样添加 docker-compose 命令行:

env CLIENT=client1 DEPLOY=production docker-compose ...

在 Windows 上,您可能需要做一些更复杂的事情(例如 this ),但可能有更简单的方法。

关于docker-compose 提供环境变量的可扩展方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com