当我尝试使用AWS CodeBuild作为Docker Build的一部分从ECR中提取图像时,遇到了证书问题。
对于上下文,我们的设置是这样:
Codebuild正在调用我们编写的内部docker工具。然后,该工具将进行docker构建。 可能使此操作更容易理解的示例命令:
../codebuild-templates/ourtoolscript docker -v
“ ourtoolscript”只是一个bash脚本,它设置了一堆环境变量,并最终使用我们指定的命令调用docker run。
问题
我们正在尝试在此工具中进行docker构建。它可以在本地运行,也可以与其他不从ECR提取图像进行构建的存储库一起使用。
我们这样做是为了使所有标记逻辑以及所有内容都是该工具中的脚本,我们可以将其应用于每个存储库。因此,说仅在工具外部进行docker构建是不可接受的解决方案。
如果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
我尝试过的事情:
我所知道的:
其他信息:
我的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