Jon*_*man 5 docker dockerfile aws-codebuild docker-in-docker aws-ecr
当我尝试使用 AWS CodeBuild 从 ECR 中提取映像作为 Docker Build 的一部分时遇到凭据问题。
对于上下文,我们的设置是这样的:
Codebuild 正在调用我们编写的内部 docker 工具。这个工具然后正在做 docker 构建。可以使这更容易理解的示例命令:
../codebuild-templates/ourtoolscript docker -v
Run Code Online (Sandbox Code Playgroud)
“ourtoolscript”只是一个设置一堆环境变量的bash脚本,最后用我们指定的命令调用docker run。
问题
我们正在尝试在此工具中进行 docker 构建。它可以在本地工作,也可以与其他不从 ECR 拉取映像进行构建的存储库一起使用。
我们正在这样做,因此所有标记逻辑和所有内容都是工具中的一个脚本,我们可以将其应用于每个存储库。所以说只在工具之外做一个 docker build 是不可接受的解决方案。
如果 docker 文件从 ECR 中提取“FROM”,它将失败:
time="2019-03-12T14:48:25Z" level=error msg="Error listing credentials" error="ecr: Failed to get authorization token: MissingRegion: could not find region configuration"
Get https://URLTOECRWITHTAG: no basic auth credentials
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
我所知道的:
其他信息:
我的 docker build 命令(删除了一些额外的东西):
docker build --build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI --rm --build-arg REPO='xyz.dkr.ecr.xyz.amazonaws.com' -f Dockerfile .
Sending build context to Docker daemon 16.64MB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1347 次 |
| 最近记录: |