Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用假定的角色配置文件进行Docker构建_Amazon Web Services_Docker_Kubernetes_Amazon Eks - Fatal编程技术网

Amazon web services 使用假定的角色配置文件进行Docker构建

Amazon web services 使用假定的角色配置文件进行Docker构建,amazon-web-services,docker,kubernetes,amazon-eks,Amazon Web Services,Docker,Kubernetes,Amazon Eks,我想在本地构建一个docker映像,它复制一个s3文件,并将其设置为容器要执行的文件 如何在不使用访问键的情况下引用docker文件中S3 Bucket所需的正确配置文件 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

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

如何在不使用访问键的情况下引用docker文件中S3 Bucket所需的正确配置文件

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
# 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
.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

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

我最终使用了docker

我在mac电脑上,必须将我的“docker桌面”设置更改为
true
,用于实验(docker-->首选项-->docker引擎):

然后我更改了我的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
# 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
最后运行build命令:

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

你读过类似的文档吗?在EKS中,您需要一个IAM角色,然后您需要一个具有该IAM角色的Kubernetes服务帐户,然后您的Kubernetes部署需要使用该服务帐户。你还需要一个合理的AWS SDK的最新版本。这方面我很满意,我只是想知道在本地构建映像而不必在映像中存储我的个人AWS凭据的最佳方法。的自述文件专门介绍了如何在运行时装载凭据文件或凭据作为环境变量。这其中有什么问题吗?我希望在构建时传递凭据,而不是在运行期间。我想我的buildkit已经接近我想要的了,但是我正在尝试找出如何使用多个aws配置文件。我更新了问题和标题,以便更准确地回答我的问题和我想要实现的目标。我最初的问题既不清楚又令人困惑。