当我尝试使用 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)
我尝试过的事情:
我所知道的:
我最近使用 AWS Migration Service 将自托管 Postgres 数据库迁移到 AWS RDS。
Postgres 版本:10.6
我注意到我的所有主键不再设置为“序列”,当我尝试手动添加序列时,它从 1 开始,而不是继续已设置的计数。
我使用 Rails 和数据库,所以我的 sql 技能相当低。我通常可以找到插入和更新的方法,但这不是我有太多经验的领域。
我的问题有两部分:
我正在使用构建流程插件构建jenkins流程,该插件将获取所有作业,将名称与正则表达式进行比较,如果匹配则会触发作业的构建.
我有这个完美的工作:
import jenkins.model.Jenkins
import java.util.regex.*
Pattern myRegex = ~/release_status.*/
for (item in jenkins.model.Jenkins.instance.items)
{
if (item.name ==~ myRegex) {
build( "$item.name" )
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这需要很长时间来构建所有匹配的工作(现在有20个,但可能还有更多).
我试图让这个并行运行每个作业,但我无法弄清楚groovy语法.
我尝试了3种不同的方式:
import jenkins.model.Jenkins
import java.util.regex.*
Pattern myRegex = ~/release_status.*/
parallel (
{
for (item in jenkins.model.Jenkins.instance.items)
{
if (item.name ==~ myRegex) {
build( "$item.name" )
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
^^这仍然有效,但它的工作方式与以前相同.它一次完成一项工作,并且在上一次完成之前不构建下一项工作.
import jenkins.model.Jenkins
import java.util.regex.*
Pattern myRegex = ~/release_status.*/
parallel (
{
for (item in jenkins.model.Jenkins.instance.items)
{
if (item.name ==~ myRegex) {
{ build( …Run Code Online (Sandbox Code Playgroud)