14.2 コンテナ用イメージの作成

前節では既製のイメージを利用してコンテナを立ち上げる方法を紹介しました。これだけでも開発で利用するミドルウェアの導入が簡単になります。さらに自分のアプリケーションをコンテナイメージにできれば、デプロイ先の選択肢が増えるなどのメリットが生じます。最近人気の、サーバー管理の手間が少なくアクセス頻度のムラに強い「サーバーレス」なども選択肢に入ってくるでしょう。

また、新規に検証環境を立ち上げる場合にも、ツールやデプロイ手順が平準化されるため、引き継ぎやドキュメント整備の手間が減らせるというメリットもあります。コンテナでよく使われるツールはDockerであると紹介しましたが、コンテナ技術自体は標準化されたものです。イメージの作成ツールもいくつもあります。本書ではDocker、Cloud Native Buildpacks、koを紹介します。

14.2.1 Dockerを使ったイメージのビルド

Dockerを使ったビルドでは、大まかに次の手順でイメージを作成します。これらの手順を記述したDockerfileを作成し、docker build -f (Dockerfile名) .(ファイル名がDockerfileであれば、-fは不要)のようにしてイメージを作成します。

  1. ビルド用のベースイメージを取得

  2. ビルドに必要なツールをインストール

  3. ローカルのソースコードを取り込む

  4. ビルド

  5. デプロイ用イメージのベースイメージを取得

  6. ビルドしたアプリケーションを取り込む

  7. デプロイ用のイメージ完成

14.2.1.1 ベースイメージの選択

シンプルにDebianなどの、素直なディストリビューションのイメージをベースにして、apt-getでビルドに必要なパッケージを入れるという方法でも良いのですが、最初から必要なツールが入っているイメージを選択して、②をスキップできるならそちらの方が良いでしょう。 ...