Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jib入門

 Jib入門

nogamincho

May 18, 2019
Tweet

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • 名前 • 野上恭平(@nogamincho) • 仕事 • 新⼈研修 •

    モバイルアプリ開発(Flutter) • 趣味 • バッジ収集
  2. Jibのゴール Fast Reproducible Daemonless • 多層に分割し依存ライブラリをクラスから切り離す。 • 変更を含むレイヤーのみ再ビルドする。 • 同⼀のコンテンツを再ビルド時には同⼀のイメージを

    ⽣成する。 • 不要なアップデートは⾏わない。 • Dockerfileおよびdockerコマンドが不要。 • JavaのみでDockerイメージをビルド可能。 参考︓https://github.com/GoogleContainerTools/jib
  3. Dockerfileのベストプラクティス • .dockerignoreファイルを利⽤する。 • コンテナをイミュータブルでエフェメラルにする。 • コマンドを集約し、レイヤー数を最⼩化する。 • 不要なパッケージをインストールしない。 •

    複数⾏の引数はソートする。 • ビルドのキャッシュを活⽤する。 • マルチステージビルドを利⽤する。 • CMDとENTRYPOINTの違いを理解する。 参考︓https://medium.com/@nagarwal/best-practices-for-working-with-dockerfiles-fb2d22b78186 これらを 意識しなくてよい︕
  4. どうやっているのか︖ • イメージ作成時に以下の情報を消去する。 • ユーザー • グループ • タイムスタンプ ~

    ❯❯❯ docker images REPOSITORY TAG IMAGE ID CREATED SIZE openjdk 8-alpine a3562aa0b991 7 days ago 105MB openjdk 8-slim 53d0e22a19f1 9 days ago 243MB openjdk 11-slim b753a509e68b 9 days ago 468MB gcr.io/distroless/java 8 58ae3d27857b 49 years ago 125MB gcr.io/distroless/java 11 7ba07814a562 49 years ago 195MB jibtest latest 26c3bb3b0be4 49 years ago 142MB
  5. オプション • ベースイメージを変更したり、追加のリソースを追加できる。 オプション 説明 instruction to コンテナイメージの出⼒先 - from

    ベースイメージ FROM container コンテナの設定(次項参照) - extraDirectories イメージに追加するディレクトリ COPY 参考︓https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
  6. Containerのオプション(抜粋) 参考︓https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin オプション 説明 instruction args アプリケーション引数 CMD entrypoint 起動時に実⾏されるコマンド

    ENTRYPOINT environment 環境変数 ENV extraClasspath 追加のクラスパス - jvmFlags JVM引数 - mainClass メインクラス - ports アクセス可能にするポート EXPOSE labels ラベル LABEL