エキサイト株式会社メディア事業部エンジニアの佐々木です。メディア事業部ではSpringBootで開発しています。SpringBootには標準でDockerFileなしでコンテナイメージを生成してくれる機能があるので、ご紹介します。
はじめに
環境は下記になります。
SpringBoot version: 2.6.3 Java version: 17 Gradle Version: 7.3.3
コンテナイメージ作成
コンテナイメージ作成はすごく簡単で、下記コマンドのみで作ることができます。
$ ./gradlew bootBuildImage \ --imageName=example.com/excite-sample-app/front:v1 $ docker images | grep sample REPOSITORY TAG IMAGE ID CREATED SIZE example.com/excite-sample-app/front v1 7f2bccdd727d 42 years ago 280MB
とても簡単です。ちょっとイメージサイズを減らしたいのでビルドする元のイメージの変更をします。
$ ./gradlew bootBuildImage \ --builder=paketobuildpacks/builder:tiny --imageName=example.com/excite-sample-app/front:v1 REPOSITORY TAG IMAGE ID CREATED SIZE example.com/excite-transfer/web v1 e19f7b55bf63 42 years ago 207MB
--builder
でコンテナイメージを生成するためのコンテナイメージを指定できます。shellすら動かないdistroless likeなイメージができあがるようです。
補足
デフォルトは、
paketobuildpacks/builder:base
になります。これだと、少々コンテナのイメージサイズが大きくなります。
まとめ
DockerFileを作成せずにコマンド1行でコンテナイメージを作成できました。build.gradle
に設定情報を書いておけば、オプション等は不要でGradle
のタスクのみでコンテナイメージを作成できます。どこかでまとめたいと思います。
最後
エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。
カジュアル面談はこちらになります! meety.net
募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com