すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Image Builder コマンド

最終更新日:May 16, 2026

Image Builder のイメージコンポーネントおよびテンプレートで使用する YAML および Dockerfile コマンドの構文と使用方法を説明します。

コマンド構文

Image Builder は、YAML (Linux および Windows) と Dockerfile (Linux のみ) の 2 つのコマンド形式をサポートしています。

説明

Dockerfile コマンドは柔軟性が低く、Linux でのみ使用できます。可能な場合は、YAML 形式を使用することを推奨します。

YAML 形式と Dockerfile 形式では、次の構文を使用します:

  • YAML: Parameters セクションと Tasks セクションを定義します:

    Parameters: # オプション。カスタムパラメーターを定義します。
      param1: # 必須。パラメーター名。
        Type: String # 必須。パラメーターのタイプ。有効な値:String、Number、Boolean。
        DefaultValue: defaultValue # オプション。パラメーターのデフォルト値。デフォルト値を指定しない場合、イメージテンプレートでイメージコンポーネントを使用する際に値を明示的に渡す必要があります。
    Tasks: # 必須。イメージコンポーネントのタスクのリストを定義します。タスクは順番に実行されます。少なくとも 1 つのタスクを含める必要があります。
      - Name: taskName1 # 必須。タスク名。
        Action: RunShellCommand # 必須。タスクのアクション。詳細については、YAML 形式のコンポーネントコマンドをご参照ください。
        Properties: # アクションのプロパティ。指定したアクションによって、使用できるプロパティが異なります。
          commandContent: echo {{ param1 }} # カスタムパラメーターを参照します。
      - Name: taskName2
        Action: action2
        Properties:
          action2Property1: {{ taskName1.stdout }} # taskName1 の出力を参照します。
    説明

    タスクのプロパティでは、他のタスクの標準出力を次のように参照します:

    {{taskName1.stdout}}           
  • Dockerfile

    • 各行には 1 つのコマンドを記述します。

    • コマンドは複数行にまたがることができます。コマンドを次の行に続けるには、各行の末尾にバックスラッシュ (\) を追加します。

サポートされるコマンド

Image Builder は、コンポーネントとテンプレートで次のコマンドをサポートしています。

コンポーネント コマンド

YAML 形式

コマンド

構文

説明

出力

RunShellCommand

Name: String
Action: RunShellCommand
Properties:
  commandContent: String # 実行するコマンド。
  workingDir: String,optional # 作業ディレクトリ。
  username: String,optional # コマンドを実行するユーザー。
  • シェルスクリプトを実行します。

  • Linux のみ。

stdout: String # コマンドの標準出力。

RunPowerShellCommand

Name: String
Action: RunPowerShellCommand
Properties:
  commandContent: String # 実行するコマンド。
  workingDir: String,optional # 作業ディレクトリ。
  username: String,optional # コマンドを実行するユーザー。
  windowsPasswordName: String,optional # Windows インスタンスでコマンドを実行するユーザーのパスワード名。
  • PowerShell スクリプトを実行します。

  • Windows のみ。

InvokeCommand

Name: String
Action: InvokeCommand
Properties:
 commandId: String # コマンドの ID。
 username: String,optional # コマンドを実行するユーザー。
 parameters: Json,optional # カスタムパラメーターのキーと値のペア。

共通コマンドを実行します。

OSSDownload

Name: String
Action: OSSDownload
Properties:
 bucketName: String # OSS バケットの名前。
 destinationDir: String # インスタンス内の保存先フォルダー。
 objectName: String # OSS オブジェクトの名前。
 ossRegion: String,optional # OSS バケットのリージョン。
 validTime: Number,optional # OSS ファイルリンクの有効期間 (秒)。
  • OSS からインスタンスにファイルをダウンロードします。

  • バケットには allowImageBuilderAccess:true タグが必要です。

なし

OSSUpload

Name: String
Action: OSSUpload
Properties:
 bucketName: String # OSS バケットの名前。
 fileToUpload: String # ローカルファイルのパス。
 objectName: String # OSS オブジェクトの名前。
 ossRegion: String,optional # OSS バケットのリージョン。
 validTime: Number,optional # OSS ファイルリンクの有効期間 (秒)。
  • インスタンスから OSS にファイルをアップロードします。

  • バケットには allowImageBuilderAccess:true タグが必要です。

WebDownload

Name: String
Action: WebDownload
Properties:
 sourcePath: String # Web ファイルの URL。
 tokenInfo: String,optional # ファイルのダウンロードに使用するトークン。このプロパティは GitHub からファイルをダウンロードする場合にのみ使用します。
 destinationDir: String # インスタンス内のダウンロードディレクトリ。
 timeout: Number,optional,default=600 # タイムアウト時間 (秒)。

Web URL からファイルをダウンロードします。

Reboot

Name: String
Action: Reboot
Properties:
 forceStop: Boolean,optional,default=false # インスタンスを強制的に再起動するかどうかを指定します。

インスタンスを再起動します。

Dockerfile 形式

コマンド

構文

説明

RESTART

RESTART

  • インスタンスを再起動します。

  • RESTART の後にコマンドは記述できません。

RUN

RUN echo hello;\
echo world;
  • 新しいレイヤーでコマンドを実行します。

  • コマンドを次の行に続けるには、行末にバックスラッシュ (\) を使用します。

ENV

  • ENV key value

  • ENV key1="value1" key2="value2"

  • システムの環境変数を設定します。

  • キーと値のペア形式を使用します。

説明

ENV key1="value1" key2="value2" 形式では、二重引用符 (") を省略しないでください。

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

作業ディレクトリを設定します。

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

ファイルをコピーします。

説明

ネットワークファイルは wget でダウンロードされますが、このコマンドは クエリ文字列 をサポートしていません。中間インスタンスにはパブリックネットワークアクセスが必要です。

USER

USER <username>

後続の RUNCMDENTRYPOINT コマンドを実行するユーザーを設定します。

説明

<username> は既存の OS ユーザーでなければなりません。存在しない場合、コマンドは失敗します。

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • イメージにメタデータを追加します。

  • コマンドを次の行に続けるには、行末にバックスラッシュ (\) を使用します。

CMD

  • CMD ["executable","param1","param2"]

  • CMD command param1 param2

起動時に実行するコマンドを指定します。

ENTRYPOINT

  • ENTRYPOINT ["executable","param1","param2"]

  • ENTRYPOINT command param1 param2

起動時に実行するコマンドを指定します。

説明

CMDENTRYPOINT はどちらも起動時コマンドを指定しますが、使用目的が異なります。個別に使用することも、組み合わせて使用することもできます。詳細については、Dockerfile reference をご参照ください。

テンプレート コマンド

コマンド

構文

説明

COMPONENT

  • COMPONENT ic-bp18hy47cqavewsb****

  • COMPONENT ic-bp18hy47cqavewsb**** --paramName1 paramValue1 --paramName2 paramValue2

  • COMPONENT acs:ecs:<RegionId>:<AliUid>:imagecomponent/<ComponentName>:<major>.<minor>.<patch>

    説明

    バージョン番号の任意の部分 (<major><minor><patch>) にワイルドカード (*) を使用すると、一致する最新バージョンを選択できます。

システムまたはカスタムのイメージコンポーネントを指定します。

  • イメージテンプレートにのみ適用されます。

  • このコマンドを使用して、テンプレート内に 1 つ以上のイメージコンポーネントを組み込みます。

  • YAML 形式と Dockerfile 形式の両方のコンポーネントをサポートしています。

RESTART

RESTART

  • インスタンスを再起動します。

  • RESTART の後にコマンドは記述できません。

RUN

RUN echo hello;\
echo world;
  • 新しいレイヤーでコマンドを実行します。

  • コマンドを次の行に続けるには、行末にバックスラッシュ (\) を使用します。

  • Linux のみ。

ENV

  • ENV key value

  • ENV key1="value1" key2="value2"

  • システムの環境変数を設定します。

  • キーと値のペア形式を使用します。

  • Linux のみ。

説明

ENV key1="value1" key2="value2" 形式では、二重引用符 (") を省略しないでください。

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

  • 作業ディレクトリを設定します。

  • Linux のみ。

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

  • ファイルをコピーします。

  • Linux のみ。

説明

ネットワークファイルは wget でダウンロードされ、クエリ文字列 はサポートされていません。中間インスタンスにはパブリックネットワークアクセスが必要です。

USER

USER <username>

  • 後続の RUNCMDENTRYPOINT コマンドを実行するユーザーを設定します。

  • Linux のみ。

説明

<username> は既存の OS ユーザーでなければなりません。存在しない場合、コマンドは失敗します。

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • イメージにメタデータを追加します。

  • コマンドを次の行に続けるには、行末にバックスラッシュ (\) を使用します。

  • Linux のみ。

CMD

  • CMD ["executable","param1","param2"]

  • CMD command param1 param2

  • 起動時に実行するコマンドを指定します。

  • Linux のみ。

ENTRYPOINT

  • ENTRYPOINT ["executable","param1","param2"]

  • ENTRYPOINT command param1 param2

  • 起動時に実行するコマンドを指定します。

  • Linux のみ。

説明

CMDENTRYPOINT はどちらも起動時コマンドを指定しますが、使用目的が異なります。個別に使用することも、組み合わせて使用することもできます。詳細については、Dockerfile reference をご参照ください。

コマンドの

次の例では、一般的なユースケースにおけるコンポーネントコマンドとテンプレートコマンドを示します。

コンポーネント コマンド

例 1:カスタムパラメーターの使用

このコンポーネントは、カスタムパラメーター x、y、z を使用して (3x+2y+z)+(3x+2y+z) を計算します。対応するテンプレートコマンドについては、「例 1:テンプレートにコンポーネントを関連付け、カスタムパラメーターに値を割り当てる」をご参照ください。

Parameters:
  x:
    Type: String
  y:
    Type: String
  z:
    Type: String
Tasks:
  - Name: count
    Action: RunShellCommand
    Properties:
      commandContent: echo $((3 * {{x}} + 2 * {{y}} + {{z}}))
  - Name: result
    Action: RunShellCommand
    Properties:
      commandContent: echo $(({{count.stdout}}+{{count.stdout}}))

例 2:OSS のスクリプトの設定

OSS 内の Linux スクリプトからイメージを作成し、同一構成の Elastic Compute Service (ECS) インスタンスを作成します。OSSUpload アクションと OSSUpload アクションにより、AccessKey ペアをハードコードする必要がなくなります。

Tasks:
  - Name: ossdownload
    Action: OSSDownload
    Properties:
      bucketName: <your_oss_bucket_name>
      destinationDir: /home
      objectName: <your_script_object_name>
  - Name: setpermissions
    Action: RunShellCommand
    Properties:
      commandContent: sudo chmod +x /home/<your_script_object_name>
  - Name: createfile
    Action: RunShellCommand
    Properties:
      commandContent: sudo touch /home/output.txt
  - Name: setfilepermissions
    Action: RunShellCommand
    Properties:
      commandContent: sudo chmod 666 /home/output.txt
  - Name: result
    Action: RunShellCommand
    Properties:
      commandContent: sudo bash /home/<your_script_object_name> &> /home/output.txt
  - Name: ossupload
    Action: OSSUpload
    Properties:
      bucketName: <your_oss_bucket_name>
      fileToUpload: /home/output.txt
      objectName: output.txt

テンプレート コマンド

例 1:コンポーネントの関連付けとパラメーターの割り当て

例 1:コンポーネントでカスタムパラメーターを使用」で示した x、y、z パラメーターに値を割り当てます。

COMPONENT ic-xxxxxxxxxxxxxxxxx --x 1 --y 2 --z 3

例 2:最新のコンポーネントバージョンの使用

コンポーネントにバージョン 1.0.1、1.0.2、および 1.0.3 がある場合、1.0.* を指定すると、一致する最新バージョン (1.0.3) が使用されます。

COMPONENT acs:ecs:cn-hangzhou:<alibaba_cloud_account_id>:imagecomponent/<your_component_name>/1.0.*