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

Jib入門

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 Jib入門

Avatar for nogamincho

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