繁体   English   中英

Docker 使用假定角色配置文件构建

[英]Docker Build using an Assumed Role Profile

我想在本地构建一个 docker 映像,该映像复制一个 s3 文件并将其设置为要由容器执行的文件。

如何在不使用访问密钥的情况下引用 docker 文件中的 S3 存储桶所需的正确配置文件?

dockerfile:

FROM onesysadmin/awscli:latest
RUN aws s3 cp s3://sample-bucket-dev-us-east-1/test_script.sh test_script.sh
RUN chmod 755 test_script.sh
CMD test_script.sh

.aws/凭证:

[master]
aws_access_key_id = ASIASF.......
aws_secret_access_key = 75opt1.......
aws_session_token = FwoGZXIvYXdzE......
aws_security_token = FwoGZXIvYXdzEFwoGZ......

[master-dev]
region = us-east-1
role_arn = arn:aws:iam::1234567890:role/master-admin
source_profile = master

即..我希望能够在我的docker build命令中使用master-dev作为配置文件。

我最终使用了 docker buildkit

我在 Mac 上,必须将我的 'docker desktop' 设置更改为true以进行实验(Docker --> Preferences --> Docker Engine):

{
  "debug": true,
  "experimental": true
}

然后我改变了我的 dockerfile:

# syntax = docker/dockerfile:experimental
FROM onesysadmin/awscli:latest
ARG PROFILE
ENV AWS_DEFAULT_PROFILE=$PROFILE
RUN --mount=type=secret,id=aws,target=/root/.aws/credentials aws sts get-caller-identity
RUN --mount=type=secret,id=aws,target=/root/.aws/credentials aws s3 cp s3://sample-bucket-dev-us-east-1/test_script.sh test_script.sh
RUN chmod 755 test_script.sh
CMD test_script.sh

最后运行构建命令:

DOCKER_BUILDKIT=1 docker build -t testing --build-arg PROFILE=master-dev \
--secret id=aws,src=$HOME/.aws/credentials .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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