Tüm Ürünler
Search
Belge Merkezi

Elastic Compute Service:Image Builder commands

Son Güncelleme:Sep 30, 2026

Image Builder bileşenleri ve şablonları için YAML ve Dockerfile komutlarının sözdizimini ve kullanımını öğrenin.

Komut sözdizimi

Image Builder iki komut biçimini destekler: YAML (Linux ve Windows) ve Dockerfile (yalnızca Linux).

Not

Dockerfile komutları daha az esnektir ve yalnızca Linux ile sınırlıdır. Mümkün olduğunda YAML biçimini kullanın.

YAML ve Dockerfile biçimleri aşağıdaki sözdizimini kullanır:

  • YAML: Parameters ve Tasks bölümlerini tanımlayın:

    Parameters: # Optional. Defines custom parameters.
      param1: # Required. The name of the parameter.
        Type: String # Required. The type of the parameter. Valid values: String, Number, and Boolean.
        DefaultValue: defaultValue # Optional. The default value of the parameter. If no default value is specified, you must explicitly pass a value when you use the image component in an image template.
    Tasks: # Required. Defines a list of tasks for the image component. The tasks are run in sequence. At least one task must be included.
      - Name: taskName1 # Required. The name of the task.
        Action: RunShellCommand # Required. The action for the task. For more information, see the YAML-format component commands.
        Properties: # The properties of the action. The available properties depend on the specified action.
          commandContent: echo {{ param1 }} # References a custom parameter.
      - Name: taskName2
        Action: action2
        Properties:
          action2Property1: {{ taskName1.stdout }} # References the output of taskName1.
    Not

    Tanımlanan parametrelere görev özelliklerinden şu şekilde başvurun:

    {{taskName1.stdout}}           
  • Dockerfile

    • Her satır tek bir komut içerir.

    • Bir komut birden fazla satıra yayılabilir. Sonraki satıra devam etmek için her satırın sonuna ters eğik çizgi (\) ekleyin.

Desteklenen komutlar

Image Builder, bileşenler ve şablonlar için aşağıdaki komutları destekler.

Bileşen komutları

YAML biçimi

Komut

Sözdizimi

Açıklama

Çıktı

RunShellCommand

Name: String
Action: RunShellCommand
Properties:
  commandContent: String # The command to run.
  workingDir: String,optional # The working directory.
  username: String,optional # The user to run the command.
  • Bir kabuk betiği çalıştırır.

  • Yalnızca Linux.

stdout: String # The standard output of the command.

RunPowerShellCommand

Name: String
Action: RunPowerShellCommand
Properties:
  commandContent: String # The command to run.
  workingDir: String,optional # The working directory.
  username: String,optional # The user to run the command.
  windowsPasswordName: String,optional # The name of the password for the user that runs commands in a Windows instance.
  • Bir PowerShell betiği çalıştırır.

  • Yalnızca Windows.

InvokeCommand

Name: String
Action: InvokeCommand
Properties:
 commandId: String # The ID of the command.
 username: String,optional # The user to run the command.
 parameters: Json,optional # The key-value pairs of custom parameters.

Ortak bir komutu çalıştırır.

OSSDownload

Name: String
Action: OSSDownload
Properties:
 bucketName: String # The name of the OSS bucket.
 destinationDir: String # The destination folder in the instance.
 objectName: String # The name of the OSS object.
 ossRegion: String,optional # The region of the OSS bucket.
 validTime: Number,optional # The validity period of the OSS file link in seconds.
  • Bir dosyayı OSS'ten bir örneğe indirir.

  • Paketin allowImageBuilderAccess:true etiketine sahip olması gerekir.

Yok

OSSUpload

Name: String
Action: OSSUpload
Properties:
 bucketName: String # The name of the OSS bucket.
 fileToUpload: String # The path to the local file.
 objectName: String # The name of the OSS object.
 ossRegion: String,optional # The region of the OSS bucket.
 validTime: Number,optional # The validity period of the OSS file link in seconds.
  • Bir dosyayı bir örnekten OSS'e yükler.

  • Paketin allowImageBuilderAccess:true etiketine sahip olması gerekir.

WebDownload

Name: String
Action: WebDownload
Properties:
 sourcePath: String # The URL of the web file.
 tokenInfo: String,optional # A token for downloading the file. This property is used only when you download files from GitHub.
 destinationDir: String # The download directory in the instance.
 timeout: Number,optional,default=600 # The timeout period in seconds.

Bir dosyayı bir web URL'sinden indirir.

Reboot

Name: String
Action: Reboot
Properties:
 forceStop: Boolean,optional,default=false # Specifies whether to forcibly reboot the instance.

Örneği yeniden başlatır.

Dockerfile biçimi

Komut

Sözdizimi

Açıklama

RESTART

RESTART

  • Örneği yeniden başlatır.

  • RESTART komutundan sonra başka komutlara izin verilmez.

RUN

RUN echo hello;\
echo world;
  • Yeni bir katmanda komut çalıştırır.

  • Sonraki satıra devam etmek için satır sonunda ters eğik çizgi (\) kullanın.

ENV

  • ENV key value

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

  • Sistem ortam değişkenlerini yapılandırır.

  • Anahtar-değer çifti biçimini kullanır.

Not

ENV key1="value1" key2="value2" biçiminde çift tırnak işaretlerini (") atlamayın.

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

Çalışma dizinini ayarlar.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

Dosyaları kopyalar.

Not

Ağ dosyaları wget ile indirilir ve query string desteklenmez. Ara örneğin genel ağ erişimi olmalıdır.

USER

USER <username>

Sonraki RUN, CMD ve ENTRYPOINT komutları için kullanıcıyı ayarlar.

Not

<username> mevcut bir işletim sistemi kullanıcısı olmalıdır. Aksi takdirde komut başarısız olur.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Görüntüye meta veri ekler.

  • Sonraki satıra devam etmek için satır sonunda ters eğik çizgi (\) kullanın.

CMD

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

  • CMD command param1 param2

Başlangıçta çalıştırılacak komutu belirtir.

ENTRYPOINT

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

  • CMD command param1 param2

Başlangıçta çalıştırılacak komutu belirtir.

Not

CMD ve ENTRYPOINT her ikisi de başlangıç komutunu belirtir ancak kullanım durumları farklıdır. Ayrı ayrı veya birlikte kullanılabilirler. Bkz. Dockerfile referansı.

Şablon komutları

Komut

Sözdizimi

Açıklama

COMPONENT

  • COMPONENT ic-bp18hy47cqavewsb****

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

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

    Not

    Sürüm numarasının herhangi bir bölümü (<major>, <minor> veya <patch>) için en son eşleşen sürümü seçmek üzere joker karakter (*) kullanın.

Bir sistem veya özel görüntü bileşeni belirtir.

  • Yalnızca görüntü şablonları için geçerlidir.

  • Bir şablonda bir veya daha fazla görüntü bileşeni birleştirmek için bu komutu kullanın.

  • Hem YAML hem de Dockerfile biçimlerindeki bileşenleri destekler.

RESTART

RESTART

  • Örneği yeniden başlatır.

  • RESTART komutundan sonra başka komutlara izin verilmez.

RUN

RUN echo hello;\
echo world;
  • Yeni bir katmanda komut çalıştırır.

  • Sonraki satıra devam etmek için satır sonunda ters eğik çizgi (\) kullanın.

  • Yalnızca Linux.

ENV

  • ENV key value

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

  • Sistem ortam değişkenlerini yapılandırır.

  • Anahtar-değer çifti biçimini kullanır.

  • Yalnızca Linux.

Not

ENV key1="value1" key2="value2" biçiminde çift tırnak işaretlerini (") atlamayın.

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

  • Çalışma dizinini ayarlar.

  • Yalnızca Linux.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

  • Dosyaları kopyalar.

  • Yalnızca Linux.

Not

Ağ dosyaları wget ile indirilir ve query string desteklenmez. Ara örneğin genel ağ erişimi olmalıdır.

USER

USER <username>

  • Sonraki RUN, CMD ve ENTRYPOINT komutları için kullanıcıyı ayarlar.

  • Yalnızca Linux.

Not

<username> mevcut bir işletim sistemi kullanıcısı olmalıdır. Aksi takdirde komut başarısız olur.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Görüntüye meta veri ekler.

  • Sonraki satıra devam etmek için satır sonunda ters eğik çizgi (\) kullanın.

  • Yalnızca Linux.

CMD

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

  • CMD command param1 param2

  • Başlangıçta çalıştırılacak komutu belirtir.

  • Yalnızca Linux.

ENTRYPOINT

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

  • CMD command param1 param2

  • Başlangıçta çalıştırılacak komutu belirtir.

  • Yalnızca Linux.

Not

CMD ve ENTRYPOINT her ikisi de başlangıç komutunu belirtir ancak kullanım durumları farklıdır. Ayrı ayrı veya birlikte kullanılabilirler. Bkz. Dockerfile referansı.

Komut örnekleri

Aşağıdaki örneklerde, yaygın kullanım durumları için bileşen ve şablon komutları gösterilmektedir.

Bileşen komutları

Örnek 1: Özel parametreleri kullanma

Bu bileşen, x, y ve z özel parametreleriyle (3x+2y+z)+(3x+2y+z) hesaplamasını yapar. İlgili şablon komutu için bkz. Örnek 1: Bir şablonu bir bileşenle ilişkilendirme ve özel parametrelerine değer atama.

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}}))

Örnek 2: OSS'ten bir betiği yapılandırma

Benzer şekilde yapılandırılmış ECS örnekleri oluşturmak için OSS'teki bir Linux betiğinden bir görüntü oluşturun. OSSDownload ve OSSUpload eylemleri, AccessKey çiftlerinin sabit kodlanmasını gerektirmez.

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

Şablon komutları

Örnek 1: Bir bileşeni ilişkilendirme ve parametre atama

Örnek 1: Bir bileşende özel parametreleri kullanma konusundaki x, y ve z parametrelerine değer atayın.

COMPONENT i-xxxxxxxxx --x 1 --y 2 --z 3

Örnek 2: En son bileşen sürümünü kullanma

1.0.1, 1.0.2 ve 1.0.3 sürümlerine sahip bir bileşen için en son eşleşen sürümü (1.0.3) kullanmak üzere 1.0.* belirtin.

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