为 docker 图像版本控制清理版本。 nebula.release
Sanitize version for docker image versioning. nebula.release
我有一个管道可以在每次推送到我的 git 存储库中的特定分支时构建一个 Docker 图像。问题是语义版本控制使用“+”字符来指定版本名称中的元数据部分。我需要将此字符替换为图像名称中 Docker 支持的另一个字符。有什么方法可以替换该字符或使用自定义版本名称?
我正在使用 nebula.release 来推断项目版本。
id 'nebula.release' version '10.1.1'
jib {
to {
image = "registry.gitlab.com.uy:5005/project/app:$version"
auth {
username = System.getenv('CI_REGISTRY_USER')
password = System.getenv('CI_REGISTRY_PASSWORD')
}
tags = ['latest']
}
container {
ports = ['8080']
environment = [
SPRING_OUTPUT_ANSI_ENABLED: 'ALWAYS',
]
useCurrentTimestamp = true
}
allowInsecureRegistries = true
}
jibDockerBuild.dependsOn bootJar
这是错误:
- What went wrong: Execution failed for task ':jib'.
com.google.cloud.tools.jib.image.InvalidImageReferenceException: Invalid image reference:
registry.gitlab.com.uy:5005/project/app:1.0.0-rc.1.dev.0+108db18
我在 build.gradle 文件中创建了这个任务,有什么方法可以重用它吗?
task cleanVersion {
ext.sanitizeVersion = { version ->
return version.toString().replace('+', '_')
}
doLast {
println sanitizeVersion("$version")
}
}
我需要一些帮助。提前感谢您的宝贵时间。
由于构建脚本是代码,看起来 jib
是一个扩展,project.version
是一个检索 属性(与任务输出或生成的东西相比),您可以使用使用与当前 cleanVersion
任务相同的代码来配置扩展。
image = "registry.gitlab.com.uy:5005/project/app:${version.toString().replace('+', '_')}"
我有一个管道可以在每次推送到我的 git 存储库中的特定分支时构建一个 Docker 图像。问题是语义版本控制使用“+”字符来指定版本名称中的元数据部分。我需要将此字符替换为图像名称中 Docker 支持的另一个字符。有什么方法可以替换该字符或使用自定义版本名称?
我正在使用 nebula.release 来推断项目版本。
id 'nebula.release' version '10.1.1'
jib {
to {
image = "registry.gitlab.com.uy:5005/project/app:$version"
auth {
username = System.getenv('CI_REGISTRY_USER')
password = System.getenv('CI_REGISTRY_PASSWORD')
}
tags = ['latest']
}
container {
ports = ['8080']
environment = [
SPRING_OUTPUT_ANSI_ENABLED: 'ALWAYS',
]
useCurrentTimestamp = true
}
allowInsecureRegistries = true
}
jibDockerBuild.dependsOn bootJar
这是错误:
- What went wrong: Execution failed for task ':jib'.
com.google.cloud.tools.jib.image.InvalidImageReferenceException: Invalid image reference: registry.gitlab.com.uy:5005/project/app:1.0.0-rc.1.dev.0+108db18
我在 build.gradle 文件中创建了这个任务,有什么方法可以重用它吗?
task cleanVersion {
ext.sanitizeVersion = { version ->
return version.toString().replace('+', '_')
}
doLast {
println sanitizeVersion("$version")
}
}
我需要一些帮助。提前感谢您的宝贵时间。
由于构建脚本是代码,看起来 jib
是一个扩展,project.version
是一个检索 属性(与任务输出或生成的东西相比),您可以使用使用与当前 cleanVersion
任务相同的代码来配置扩展。
image = "registry.gitlab.com.uy:5005/project/app:${version.toString().replace('+', '_')}"