繁体   English   中英

将 AWS CLI 凭证挂载到 DockerFile

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM