在Docker构build过程中的AWS凭证
作为构build我的docker集装箱的过程的一部分,我需要从s3桶中拉出一些文件,但我不断收到fatal error: Unable to locate credentials
尽pipe现在我fatal error: Unable to locate credentials
凭据作为ENV
variables设置凭据(虽然想知道一个更好的方法来做到这一点)
所以当我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_ID
和AWS_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。