earandap:
私は自分のgitリポジトリ内の特定のブランチにすべてのプッシュでドッカーイメージを構築するためのパイプラインを持っています。問題は、セマンティックバージョニングは、バージョン名にメタデータセクションを指定するには「+」文字を使用していることです。私は、イメージ名にドッカーでサポートされている別のために、この文字を交換する必要があります。その文字を交換したり、カスタムバージョン名を使用する方法はありますか?
私は、プロジェクトのバージョンを推測する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
これはエラーです:
- 何が間違っていた:「:ジブ」実行がタスクに失敗しました。
com.google.cloud.tools.jib.image.InvalidImageReferenceException:無効なイメージ参照: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")
}
}
私はいくつかの助けを使用することができます。お時間を事前に感謝します。
mkobit:
ビルドスクリプトをコードしていると同じように見えているのでjib
拡張である、project.version
あなたは、あなたの現在にあなたが持っている同じコードを使用することができます(生成されたタスクの出力か何かと比較して)検索プロパティでcleanVersion
拡張子を設定するためのタスク。
image = "registry.gitlab.com.uy:5005/project/app:${version.toString().replace('+', '_')}"