BoilerplateイメージはALM用イメージの仕様を満たすようにビルドしたテンプレートです。
DockerfileにFROM mobingi/baseimage:alpine-3.7
など任意のディストリビューションを指定します。利用できるタグはDockerhubを参照します。
以下4つの必須ディレクトリを用意します。
- fix-attrs.d (パーミッション修正処理 | Docs => Fixing ownership & permissions - s6-overlay)
- cont-init.d (起動後の初期化処理 | Docs => Executing initialization And/Or finalization tasks - s6-overlay)
- services.d (起動するサービスの定義 | Docs => Writing a service script - s6-overlay)
- cont-finish.d コンテナ停止時の処理 | Docs => Executing initialization And/Or finalization tasks - s6-overlay)
一般的なイメージならば次の2箇所に手を加えるだけでALM用カスタムイメージとして稼働します。
cont-init.d
に初期化処理。- 環境変数を利用するためには shbangを
#!/usr/bin/with-contenv bash
とする
- 環境変数を利用するためには shbangを
services.d
にサービス名ディレクトリ+run
ファイル。- フォアグラウンドで稼働するように記述
- 任意でヘルパーのexecline Syntaxが利用可能
以下、サンプルを用意しています。
Boilerplateを使わずにカスタムイメージを自作する場合は、s6を使用する必要はありません。
S6の詳細はs6-overlayのREADME、s6 | 公式のドキュメント、ユースケースのサンプルはs6 - gentoo linux Wikiに載っています。