[英]Mount AWS CLI credentials to DockerFile
我正在尝试将 AWS CLI 凭证从我的本地主机系统安装到我的 docker 容器,以便我可以在 AWS 上托管的 requirements.txt 文件中安装私有包。
我可以运行这个例子:
docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls
在我的 Ubuntu 终端中就好了,但我不知道如何将其转换为 DockerFile 的 RUN 格式。
例如,DockerFile 等效于:
docker run --rm -it amazon/aws-cli --version
是:
RUN aws --version
但我无法弄清楚如何将-v ~/.aws:/root/.aws
挂载方面传递给它。
任何帮助将非常感激。 谢谢。
如果您没有按照评论的建议使用 docker 18.X,并且如果您想要 docker 文件中的 AWS 机密。
这是另一种方法
export profile="my-aws-cli-profile"
docker build --build-arg AWS_ACCESS_KEY_ID=$(aws --profile $profile configure get aws_access_key_id) --build-arg AWS_SECRET_ACCESS_KEY=$(aws --profile $profile configure get aws_secret_access_key) -t myaws-cli .
和 Dockerfile
FROM amazon/aws-cli
ARG AWS_ACCESS_KEY_ID=defaultValue
ARG AWS_SECRET_ACCESS_KEY=defaultValue
ARG AWS_DEFAULT_REGION=us-west-2
ENV AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
ENV AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
ENV AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION
RUN aws --version
RUN aws s3 ls
尽管在 docker 构建中分发您的 AWS 密钥并不安全。
如果它只需要它构建时间,那么最好取消设置
RUN aws s3 cp s3://myrepo/file .
ENV AWS_ACCESS_KEY_ID=null
ENV AWS_SECRET_ACCESS_KEY=null
但请记住,仍然可以从 docker 历史记录中读取旧设定值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.