JibでDockerイメージビルド時にエントリポイントを設定する

今従事しているプロジェクトでは Jib が使われており、ビルド時にエントリポイントするにはどうしたらいいかを調べたので備忘録として残します。
(Kotlin を使ったアプリケーションで jib-gradle-plugin を使っています)

結論のみ述べると container で entrypoint を設定し、extraDirectories でパーミッションの変更を行います。
ただ一点注意が必要で、Jib のデフォルトのイメージは distroless/java なので shell を実行したい場合はイメージを変える必要があります

1
2
3
4
5
6
7
8
9
10
jib {
container {
entrypoint = ['docker/entrypoint.sh']
}
extraDirectories {
permissions = [
'/docker/entrypoint.sh': '755'
]
}
}

手軽にDocker イメージを作るのに Jib は便利ですが、USE_CURRENT_TIMESTAMP をつけないと昭和なイメージになるなどちゃんとドキュメントを読み込まないとハマる点が多いと感じました

Ref