ドッキングウィンドウのイメージのバージョン管理のためのサニタイズバージョン。nebula.release

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('+', '_')}"

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=214242&siteId=1