Todos os produtos
Search
Central de documentação

Elastic Compute Service:Comandos do Image Builder

Última atualização: Jul 03, 2026

Conheça a sintaxe e o uso de comandos YAML e Dockerfile para componentes e modelos do Image Builder.

Sintaxe de comandos

O Image Builder é compatível com dois formatos de comando: YAML (Linux e Windows) e Dockerfile (apenas Linux).

Nota

Os comandos Dockerfile são menos flexíveis e restritos ao Linux. Sempre que possível, utilize o formato YAML.

Os formatos YAML e Dockerfile utilizam a seguinte sintaxe:

  • YAML: Defina as seções Parameters e Tasks:

    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.
    Nota

    Para referenciar parâmetros definidos nas propriedades da tarefa, utilize:

    {{taskName1.stdout}}           
  • Dockerfile

    • Cada linha contém um único comando.

    • Um comando pode abranger várias linhas. Adicione uma barra invertida (\) ao final de cada linha para continuar na próxima.

Comandos compatíveis

O Image Builder oferece os seguintes comandos para componentes e modelos.

Comandos de componente

Formato YAML

Comando

Sintaxe

Descrição

Saída

RunShellCommand

Name: String
Action: RunShellCommand
Properties:
  commandContent: String # The command to execute.
  workingDir: String,optional # The working directory.
  username: String,optional # The user to execute the command.
  • Executa um script de shell.

  • Exclusivo para Linux.

stdout: String # The standard output of the command.

RunPowerShellCommand

Name: String
Action: RunPowerShellCommand
Properties:
  commandContent: String # The command to execute.
  workingDir: String,optional # The working directory.
  username: String,optional # The user to execute the command.
  windowsPasswordName: String,optional # The name of the password for the user that executes commands in a Windows instance.
  • Executa um script powershell.

  • Exclusivo para Windows.

InvokeCommand

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

Executa um comando comum.

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.
  • Baixe um arquivo do oss para uma instância.

  • O bucket deve ter a tag allowImageBuilderAccess:true.

Nenhuma

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.
  • Envia um arquivo de uma instância para o oss.

  • O bucket deve ter a tag allowImageBuilderAccess:true.

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.

Baixe um arquivo de uma URL da web.

Reboot

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

Reinicia a instância.

Formato Dockerfile

Comando

Sintaxe

Descrição

RESTART

RESTART

  • Reinicia a instância.

  • Não são permitidos comandos após RESTART.

RUN

RUN echo hello;\
echo world;
  • Execute um comando em uma nova camada.

  • Use uma barra invertida (\) ao final da linha para continuar na próxima.

ENV

  • ENV key value

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

  • Configure variáveis de ambiente do sistema.

  • Utiliza o formato de pares chave-valor.

Nota

No formato ENV key1="value1" key2="value2", não omita as aspas duplas (").

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

Define o diretório de trabalho.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

Copia arquivos.

Nota

O baixe de arquivos de rede ocorre com wget, que não é compatível com query strings. A instância intermediária deve ter acesso à rede pública.

USER

USER <username>

Define o usuário para os comandos RUN, CMD e ENTRYPOINT subsequentes.

Nota

<username> deve ser um usuário existente no SO. Caso contrário, o comando falhará.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Adiciona metadados à imagem.

  • Use uma barra invertida (\) ao final da linha para continuar na próxima.

CMD

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

  • CMD command param1 param2

Especifique o comando a ser executado na inicialização.

ENTRYPOINT

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

  • CMD command param1 param2

Especifique o comando a ser executado na inicialização.

Nota

CMD e ENTRYPOINT especificam o comando de inicialização, mas diferem nos casos de uso. Podem ser usados separadamente ou combinados. Consulte a Referência do Dockerfile.

Comandos de modelo

Comando

Sintaxe

Descrição

COMPONENT

  • COMPONENT ic-bp18hy47cqavewsb****

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

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

    Nota

    Use um caractere curinga (*) em qualquer parte do número da versão (<major>, <minor> ou <patch>) para selecione a versão correspondente mais recente.

Especifique um componente de imagem do sistema ou personalizado.

  • Aplica-se apenas a modelos de imagem.

  • Use este comando para reunir um ou mais componentes de imagem em um modelo.

  • É compatível com componentes nos formatos YAML e Dockerfile.

RESTART

RESTART

  • Reinicia a instância.

  • Não são permitidos comandos após RESTART.

RUN

RUN echo hello;\
echo world;
  • Execute um comando em uma nova camada.

  • Use uma barra invertida (\) ao final da linha para continuar na próxima.

  • Exclusivo para Linux.

ENV

  • ENV key value

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

  • Configure variáveis de ambiente do sistema.

  • Utiliza o formato de pares chave-valor.

  • Exclusivo para Linux.

Nota

No formato ENV key1="value1" key2="value2", não omita as aspas duplas (").

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

  • Define o diretório de trabalho.

  • Exclusivo para Linux.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

  • Copia arquivos.

  • Exclusivo para Linux.

Nota

O baixe de arquivos de rede ocorre com wget e não há compatibilidade com query strings. A instância intermediária deve ter acesso à rede pública.

USER

USER <username>

  • Define o usuário para os comandos RUN, CMD e ENTRYPOINT subsequentes.

  • Exclusivo para Linux.

Nota

<username> deve ser um usuário existente no SO. Caso contrário, o comando falhará.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Adiciona metadados à imagem.

  • Use uma barra invertida (\) ao final da linha para continuar na próxima.

  • Exclusivo para Linux.

CMD

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

  • CMD command param1 param2

  • Especifique o comando a ser executado na inicialização.

  • Exclusivo para Linux.

ENTRYPOINT

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

  • CMD command param1 param2

  • Especifique o comando a ser executado na inicialização.

  • Exclusivo para Linux.

Nota

CMD e ENTRYPOINT especificam o comando de inicialização, mas diferem nos casos de uso. Podem ser usados separadamente ou combinados. Consulte a Referência do Dockerfile.

Exemplos de comandos

Os exemplos a seguir mostram comandos de componente e modelo para casos de uso comuns.

Comandos de componente

Exemplo 1: Uso de parâmetros personalizados

Este componente calcula (3x+2y+z)+(3x+2y+z) com os parâmetros personalizados x, y e z. Consulte Exemplo 1: Associar um modelo a um componente e atribuir valores aos seus parâmetros personalizados para ver o comando de modelo correspondente.

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

Exemplo 2: Configuração de um script do oss

Crie uma imagem a partir de um script Linux no oss para gerar instâncias ECS com configurações idênticas. As ações OSSDownload e OSSUpload eliminam a necessidade de codificar pares AccessKey diretamente no código.

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

Comandos de modelo

Exemplo 1: Associação de um componente e atribuição de parâmetros

Atribua valores aos parâmetros x, y e z conforme demonstrado no Exemplo 1: Uso de parâmetros personalizados em um componente.

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

Exemplo 2: Uso da versão mais recente do componente

Para um componente com as versões 1.0.1, 1.0.2 e 1.0.3, especifique 1.0.* para utilizar a versão correspondente mais recente (1.0.3).

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