Amazon web services 使用ecs上下文时将环境变量传递给“docker compose”
我正在尝试使用最新docker cli公开的新ecs上下文。当我使用Amazon web services 使用ecs上下文时将环境变量传递给“docker compose”,amazon-web-services,docker,docker-compose,environment-variables,amazon-ecs,Amazon Web Services,Docker,Docker Compose,Environment Variables,Amazon Ecs,我正在尝试使用最新docker cli公开的新ecs上下文。当我使用docker context create ecs my_context创建上下文时,我选择使用环境变量方法(推荐的方法),无论我如何尝试调用docker compose,它总是返回消息context requires credentials to passed as environment variables。在google中搜索此邮件不会返回任何内容:/ 我尝试过使用-e和--environment标志传递,我尝试过使用.e
docker context create ecs my_context
创建上下文时,我选择使用环境变量方法(推荐的方法),无论我如何尝试调用docker compose
,它总是返回消息context requires credentials to passed as environment variables
。在google中搜索此邮件不会返回任何内容:/
我尝试过使用-e
和--environment
标志传递,我尝试过使用.env
文件和--env文件
标志传递
docker --context my_ecs compose -f docker-compose.yml -f docker-compose.dev.yml -e AWS_ACCESS_KEY_ID=XXXXXXX -e AWS_SECRET_ACCESS_KEY=XXXXXXXX -e AWS_DEFAULT_REGION=XXXXXXXX up
如果我不使用环境变量方法,它会遇到另一个已知的(令人沮丧的)错误,即它使用了错误的aws区域,即使上下文是用正确的区域设置的。我觉得环境变量选项可以解决这个问题,如果我能让它看到环境变量的话。我认为在
docker compose up
命令期间传递变量不起作用。其工作方式是在shell中导出访问密钥ID、机密访问密钥和区域变量,然后通过指向这些变量创建docker上下文
您可以通过启动docker context create ecs myeccontext
,然后选择AWS环境变量
以交互方式执行此操作,或者您可以从env运行docker context create ecs myeccontext--from env
是的,如果您所指的是区域错误,那么区域错误是令人恼火的。是的,这就是区域问题:windows shell中没有导出选项,这可能就是我正在访问windows的地方…:)。。。这是15年前的事了。别开玩笑了……我从来没有在Windows上使用过它,但我认为一个
SET
(而不是EXPORT
)就可以了?是的,我已经尝试过SET
,甚至手动添加了ENV变量,但它没有提取它们。不过,我发现了一件有趣的事情,docker compose
cli自动在.env
文件中拾取变量,甚至没有指定带有--env file
标志的文件,这似乎是另一个bug:但是对于ecs集成,我需要将docker
cli与新的compose
选项一起使用。。。我不相信它会同样拾取.env
文件,否则我可能不会有这个问题:DCan可以确认使用docker-compose-f docker-compose.build.yml build
默认情况下也会拾取同一位置的.env