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

アウトプットしないのは知的な便秘

1月に開催された ssmonline#6 のテポさんの発表「アウトプットしないのは知的な便秘」に刺激を受けての更新です。
更新できませんでした、みたいな内容の更新は嫌だと思っていたら2年経っていました…

最近個人的に勉強しているもの

最近は Golang と Kotlin を勉強しています。

Golang

Golang はチームメンバーと Golang 書けるようになりたいね、という話になり勉強会を開くことになったことがきっかけです。
せっかくなら実用的なものにしたいと、既存プロダクトの API を Golang で作り替えることを目的に週に1回30分~1時間程度とりくんでいました。
API 1本完成したくらいでその勉強会は終わってしまったのですが、その後は個人で機会を見つけて書くようにしています。

年末年始は learn-go-with-tests写経していました。
「TDD、なんとなく知ってはいるけれど実践したことはない」という状態だったので TDD と Golang が両方学べるとてもありがたいレポジトリでした。
社内で Golang 勉強していると聞いたらこちらのレポジトリをおすすめしています。

最近だと、新しいプロジェクトが始まり実装タスクごとに Github 上に issue を立てる必要があったので issue を作るアプリケーションを Golang で書いてみました。
今は JSON で指定された内容から issue を作る機能しかないので、追々拡張していけたらいいなと考えています。

Kotlin

Kotlin は上述の新しいプロジェクトで使われている言語なのでキャッチアップも兼ねて勉強しています。
(昔、勉強がてら書いた覚えがあったのでレポジトリを探したら2年前でした。早いなぁ…)

Java と違ってメソッドを変数みたいに書けるのは面白いなぁと思います。

1
2
3
public String hello() {
return "Hello Java";
}
1
fun hello() :String = "Hello Kotlin"

さいごに

アウトプットしないのは知的な便秘 は私にとって身が引き締まるいい言葉でした。
前ほどではなくても何かアウトプットしていきたいと思います。

来週は Java 16 リリースですね

久しぶりの更新

Qiita 投稿一覧サイトを2系にしました

以前作ったQiita 投稿一覧サイトを2系(v2.8.1)にしました(最初のコミットしたの2年前になるのか…)
機能が少ないこともあり、基本的には2系で変更された設定回りを変更するだけで済みました。
対応ついでにテストフレームをavaからjestに変え、CircleCiと連携するように。少しモダンになった…!

3系がリリースされたら、storeの見直し/変更と併せてもうちょっとテストを書く予定です(Qiitaは3系がきたら更新しようかな、、)

最近教えてもらったんですが、テストケースをスキップしたり、todoとしてディスクリプションだけ書けるのはとても便利ですね!

VueFes 2019

昨年はチケットが即完売して参加できずに終わったVueFesですが、今年はご縁がありスタッフとして携われることになりました。
(ティザーサイト、一部実装を担当させてもらいました)
会社以外でチームを組んで何かに取り組むというのはいい経験だなと有難く思っています。
いいカンファレンスになるように準備、頑張ります。

体重の推移を可視化するリポジトリのアーカイブ

こちらも以前作ったものですが、メンテできそうにないのでインデントと使用ライブラリのマイナーバージョンアップのみ行い、アーカイブすることにしました。
今見れば「これ、コンポーネントに切り出さなあかんやつや…」と思うくらい密結合しているページなんですが、そう思えるようになったのは成長した証かな
可視化するのはテンションがあがるので、またこのリポジトリをメンテするか、この構想を元に別の何かに繋げられたらいいなーと思っています。

ref: nuxtとbuefyを使って日々の体重の推移をグラフで可視化する