Image Builder機能は、画像テンプレートを使用して画像コンテンツをカスタマイズします。 イメージコンポーネントを指定するか、コマンドを直接指定してイメージテンプレートを作成できます。 画像コンポーネントは、1つ以上のコマンドから構成される。 コマンドは、画像テンプレートの最小単位です。 このトピックでは、Image Builderでサポートされている一般的なコマンドの構文と例を示します。
コマンド構文
Image Builderは、LinuxおよびWindowsオペレーティングシステムではYAML Ain't Markup Language (YAML) 形式のコマンドをサポートし、LinuxオペレーティングシステムではDockerFile形式のコマンドのみをサポートします。
DockerFile形式のコマンドは柔軟性が低く、オペレーティングシステムに制限があります。 YAML形式の使用を推奨します。
YAML形式およびDockerFile形式のコマンドには、次の構文要件があります。
YAML:
[パラメーター]
および[タスク]
フィールドを定義する必要があります。 構文:Parameters: # (Optional) Define custom parameters. param1: # (Required) Specify the parameter name. Type: String # (Required) Specify the parameter type. Valid values: String, Number, and Boolean. DefaultValue: defaultValue # (Optional) Configure the default value of the parameter. If a parameter does not have a default value, you must explicitly pass in the parameter to the image template that contains the image component in which the parameter is included. Tasks: # Define the task list of the image component, which contains at least one task. The tasks in the task list are executed in sequence. - Name: taskName1 # (Required) Specify the task name. Action: RunShellCommand # (Required) Specify the task action. For more information, see the component commands in the YAML format. Properties: # Specify action properties. The properties vary based on the action. commandContent: echo {{ param1 }} # Reference a custom parameter. - Name: taskName2 Action: action2 Properties: action2Property1: {{ taskName1.stdout }} # Reference the output of the taskName1 task.
説明上記のパラメーターは、[タスク] フィールドのプロパティとして参照できます。 次のサンプルコードは、参照構文を提供します。
{{taskName1.stdout}}
DockerFile
各行には、1つのコマンドまたは1つのコマンドの一部のみが含まれます。
1つのコマンドを複数の行に分割できます。 最后の行を除く各行の末尾にエスケープ文字 (\) を追加する必要があります。
Image Builderでサポートされるコマンド
次のセクションでは、image Builderを使用してElastic Compute Service (ECS) コンソールでイメージコンポーネントを作成し、API操作を呼び出す場合に、イメージコンポーネントでサポートされるコマンド構文について説明します。
ECSコンソールおよびAPI操作でサポートされているコンポーネントコマンド
(推奨) Y AML形式
コマンド | 構文または例 | 説明 | 出力 |
RunShellCommand |
|
|
|
RunPowerShellCommand |
|
| |
InvokeCommand |
| このコマンドは、共通コマンドを実行するために使用されます。 | |
OSSDownload |
|
| なし。 |
OSSUpload |
|
| |
WebDownload |
| このコマンドは、ネットワークからファイルをダウンロードするために使用されます。 | |
再起動 |
| このコマンドは、ECSインスタンスを再起動するために使用されます。 |
DockerFile形式
コマンド | 構文または例 | 説明 |
再起動 |
|
|
実行 |
|
|
ENV |
|
説明 コマンドの各システム変数の値の前後に二重引用符 (") が必要です。 例: |
WORKDIR |
| このコマンドは、作業ディレクトリを指定するために使用されます。 |
COPY |
| このコマンドはファイルのコピーに使用されます。 説明 ネットワークファイルは |
USER |
| このコマンドは、コマンドの実行に使用されるアカウントのユーザー名を指定するために使用されます。 説明
|
ラベル |
|
|
CMD |
| このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。 |
エントリーポイント |
| このコマンドは、システムの起動時に特定のコマンドとパラメーターを実行できるようにするために使用します。 説明
|
DockerFile形式のテンプレートコマンド (API操作でのみサポート)
コマンド | 構文または例 | 説明 |
COMPONENT |
| このコマンドは、画像コンポーネントを指定するために使用されます。 システムコンポーネントまたはカスタムコンポーネントを指定できます。
|
再起動 |
|
|
実行 |
|
|
ENV |
|
説明 コマンドの各システム変数の値の前後に二重引用符 (") が必要です。 例: |
WORKDIR |
|
|
COPY |
|
説明 ネットワークファイルは |
USER |
|
説明
|
ラベル |
|
|
CMD |
|
|
エントリーポイント |
|
説明
|
componentコマンドの例
イメージコンポーネントを作成するときに、[ビルド] または [テスト] を選択できます。 次のサンプルテンプレートコマンドをコピーし、ビジネスシナリオに基づいてコマンドを変更できます。
ビルドコンポーネントは、イメージコンテンツをカスタマイズするために使用され、イメージビルドテンプレートでのみ使用できます。
テストコンポーネントは、イメージを期待どおりに実行でき、イメージテストテンプレートでのみ使用できるかどうかをテストするために使用されます。
ビルドコンポーネント
Linuxオペレーティングシステム
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunShellCommand
Properties:
commandContent: echo {{HelloWorld.stdout}}
Windowsオペレーティングシステム
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunPowerShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunPowerShellCommand
Properties:
commandContent: echo {{HelloWorld.stdout}}
テストコンポーネント
Linuxオペレーティングシステム
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunShellCommand
Properties:
commandContent: |-
echo {{HelloWorld.stdout}}
exit 0
Windowsオペレーティングシステム
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunPowerShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunPowerShellCommand
Properties:
commandContent: |-
echo {{HelloWorld.stdout}}
exit 0