仕組み
大まかに言うと、テンプレートのビルドは次のように動作します。- 標準ベースイメージ、既存のイメージ、Dockerfile、または別のテンプレートなどのテンプレートソースを解決します。
runCmd、copy、makeDir、setEnvs、およびパッケージインストール用ヘルパーなどのテンプレート命令を適用します。- 設定されている場合は、テンプレートの開始コマンドを起動します。
- 準備完了コマンドが成功するまで待ちます。
- 準備済みの環境を再利用可能なテンプレートとして保存します。
templateId / template_id と buildId / build_id が生成されます。後で Sandbox.create(...) でテンプレート ID を使用します。
ユーザーと作業ディレクトリ
テンプレートでは、後続のビルドステップおよび最終環境で使用されるデフォルトの Linux ユーザーと作業ディレクトリを設定できます。 ビルドコマンドを特定のユーザーとして実行する必要がある場合は、setUser(...) / set_user(...) を使用します。後続のコマンドやコピーされたファイルを特定のディレクトリからの相対パスとして解決したい場合は、setWorkdir(...) / set_workdir(...) を使用します。
キャッシュ
テンプレートのビルドでは、以前に完了したレイヤーがキャッシュされるため、繰り返しビルドする際にすべての命令を再実行する必要はありません。 通常、これは高速な反復作業に適しています。完全に新しいビルドが必要な場合は、skipCache: true / skip_cache=True でビルド全体のキャッシュを無効にするか、skipCache() / skip_cache() でテンプレートチェーンにマークを付けます。