在Docker构build过程中的AWS凭证

作为构build我的docker集装箱的过程的一部分,我需要从s3桶中拉出一些文件,但我不断收到fatal error: Unable to locate credentials尽pipe现在我fatal error: Unable to locate credentials凭据作为ENVvariables设置凭据(虽然想知道一个更好的方法来做到这一点)

所以当我build立我运行的容器

 docker build -t my-container --build-arg AWS_DEFAULT_REGION="region" --build-arg AWS_ACCESS_KEY="key" --build-arg AWS_SECRET_ACCESS_KEY="key" . --squash 

在我的Dockerfile中

 ARG AWS_DEFAULT_REGION ENV AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION ARG AWS_ACCESS_KEY ENV AWS_ACCESS_KEY=$AWS_ACCESS_KEY ARG AWS_SECRET_ACCESS_KEY ENV AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY RUN /bin/bash -l -c "aws s3 cp s3://path/to/folder/ /my/folder --recursive" 

有谁知道我可以如何解决这个问题(我知道有一个选项来添加一个configuration文件,但这似乎是一个不必要的额外步骤,因为我应该能够从ENV读取)

任何帮助赞赏

谢谢

环境variables的名称是AWS_ACCESS_KEY_IDAWS_ACCESS_KEY

您可以从amazon doc查看完整列表

AWS CLI支持以下variables

AWS_ACCESS_KEY_ID – AWS访问密钥。

AWS_SECRET_ACCESS_KEY – AWS密钥。 访问和密钥variables覆盖存储在凭证和configuration文件中的凭证。

AWS_SESSION_TOKEN – 会话令牌。 会话令牌只有在使用临时安全证书时才是必需的。

AWS_DEFAULT_REGION – AWS地区。 如果设置,此variables将覆盖正在使用的configuration文件的默认区域。

AWS_DEFAULT_PROFILE – 要使用的CLIconfiguration文件的名称。 这可以是存储在凭证或configuration文件中的configuration文件的名称,或默认使用默认configuration文件。

AWS_CONFIG_FILE – CLIconfiguration文件的path。