Tous les produits
Search
Centre de documentation

Elastic Compute Service:Commandes Image Builder

Dernière mise à jour :Aug 18, 2026

Découvrez la syntaxe et l'utilisation des commandes YAML et Dockerfile pour les composants et modèles Image Builder.

Syntaxe des commandes

Image Builder prend en charge deux formats de commande : YAML (Linux et Windows) et Dockerfile (Linux uniquement).

Remarque

Les commandes Dockerfile sont moins flexibles et limitées à Linux. Privilégiez le format YAML dans la mesure du possible.

Les formats YAML et Dockerfile utilisent la syntaxe suivante :

  • YAML : Définissez les sections Parameters et 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.
    Remarque

    Référencez les paramètres définis dans les propriétés des tâches :

    {{taskName1.stdout}}           
  • Dockerfile

    • Chaque ligne contient une seule commande.

    • Une commande peut s'étendre sur plusieurs lignes. Ajoutez une barre oblique inverse (\) à la fin de chaque ligne pour poursuivre sur la ligne suivante.

Commandes prises en charge

Image Builder prend en charge les commandes suivantes pour les composants et les modèles.

Commandes de composant

Format YAML

Commande

Syntaxe

Description

Sortie

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.
  • Exécute un script shell.

  • Linux uniquement.

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.
  • Exécute un script PowerShell.

  • Windows uniquement.

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.

Exécute une commande courante.

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.
  • Télécharge un fichier depuis OSS vers une instance.

  • Le bucket doit comporter le tag allowImageBuilderAccess:true.

Aucune

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.
  • Téléverse un fichier d'une instance vers OSS.

  • Le bucket doit comporter le 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.

Télécharge un fichier depuis une URL web.

Reboot

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

Redémarre l'instance.

Format Dockerfile

Commande

Syntaxe

Description

RESTART

RESTART

  • Redémarre l'instance.

  • Aucune commande n'est autorisée après RESTART.

RUN

RUN echo hello;\
echo world;
  • Exécute une commande dans une nouvelle couche.

  • Utilisez une barre oblique inverse (\) à la fin d'une ligne pour poursuivre sur la ligne suivante.

ENV

  • ENV key value

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

  • Configure les variables d'environnement système.

  • Utilise le format clé-valeur.

Remarque

Dans le format ENV key1="value1" key2="value2", n'omettez pas les guillemets doubles (").

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

Définit le répertoire de travail.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

Copie des fichiers.

Remarque

Les fichiers réseau sont téléchargés avec wget, qui ne prend pas en charge les query string. L'instance intermédiaire doit disposer d'un accès au réseau public.

USER

USER <username>

Définit l'utilisateur pour les commandes RUN, CMD et ENTRYPOINT suivantes.

Remarque

<username> doit correspondre à un utilisateur existant du système d'exploitation. Sinon, la commande échoue.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Ajoute des métadonnées à l'image.

  • Utilisez une barre oblique inverse (\) à la fin d'une ligne pour poursuivre sur la ligne suivante.

CMD

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

  • CMD command param1 param2

Spécifie la commande à exécuter au démarrage.

ENTRYPOINT

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

  • CMD command param1 param2

Spécifie la commande à exécuter au démarrage.

Remarque

CMD et ENTRYPOINT spécifient tous deux la commande de démarrage, mais leurs cas d'utilisation diffèrent. Ils peuvent être utilisés séparément ou combinés. Consultez la référence Dockerfile.

Commandes de modèle

Commande

Syntaxe

Description

COMPONENT

  • COMPONENT ic-bp18hy47cqavewsb****

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

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

    Remarque

    Utilisez un astérisque (*) pour toute partie du numéro de version (<major>, <minor> ou <patch>) afin de sélectionner la dernière version correspondante.

Spécifie un composant d'image système ou personnalisé.

  • S'applique uniquement aux modèles d'image.

  • Utilisez cette commande pour assembler un ou plusieurs composants d'image dans un modèle.

  • Prend en charge les composants aux formats YAML et Dockerfile.

RESTART

RESTART

  • Redémarre l'instance.

  • Aucune commande n'est autorisée après RESTART.

RUN

RUN echo hello;\
echo world;
  • Exécute une commande dans une nouvelle couche.

  • Utilisez une barre oblique inverse (\) à la fin d'une ligne pour poursuivre sur la ligne suivante.

  • Linux uniquement.

ENV

  • ENV key value

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

  • Configure les variables d'environnement système.

  • Utilise le format clé-valeur.

  • Linux uniquement.

Remarque

Dans le format ENV key1="value1" key2="value2", n'omettez pas les guillemets doubles (").

WORKDIR

  • WORKDIR /<path>

  • WORKDIR <path1>/<path2>

  • Définit le répertoire de travail.

  • Linux uniquement.

COPY

  • COPY <source_web_file_URL> <destination_directory>

  • COPY <source_local_file_path> <destination_directory>

  • Copie des fichiers.

  • Linux uniquement.

Remarque

Les fichiers réseau sont téléchargés avec wget et les query string ne sont pas pris en charge. L'instance intermédiaire doit disposer d'un accès au réseau public.

USER

USER <username>

  • Définit l'utilisateur pour les commandes RUN, CMD et ENTRYPOINT suivantes.

  • Linux uniquement.

Remarque

<username> doit correspondre à un utilisateur existant du système d'exploitation. Sinon, la commande échoue.

LABEL

LABEL user="username"\
date="2020-11-11" key="value"
  • Ajoute des métadonnées à l'image.

  • Utilisez une barre oblique inverse (\) à la fin d'une ligne pour poursuivre sur la ligne suivante.

  • Linux uniquement.

CMD

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

  • CMD command param1 param2

  • Spécifie la commande à exécuter au démarrage.

  • Linux uniquement.

ENTRYPOINT

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

  • CMD command param1 param2

  • Spécifie la commande à exécuter au démarrage.

  • Linux uniquement.

Remarque

CMD et ENTRYPOINT spécifient tous deux la commande de démarrage, mais leurs cas d'utilisation diffèrent. Ils peuvent être utilisés séparément ou combinés. Consultez la référence Dockerfile.

Exemples de commandes

Les exemples suivants illustrent des commandes de composants et de modèles pour des cas d'utilisation courants.

Commandes de composant

Exemple 1 : Utiliser des paramètres personnalisés

Ce composant calcule (3x+2y+z)+(3x+2y+z) à l'aide des paramètres personnalisés x, y et z. Consultez Exemple 1 : Associer un modèle à un composant et attribuer des valeurs à ses paramètres personnalisés pour obtenir la commande de modèle correspondante.

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

Exemple 2 : Configurer un script depuis OSS

Créez une image à partir d'un script Linux stocké dans OSS afin de provisionner des instances ECS identiquement configurées. Les actions OSSDownload et OSSUpload évitent d'avoir à coder en dur les paires 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

Commandes de modèle

Exemple 1 : Associer un composant et attribuer des paramètres

Attribuez des valeurs aux paramètres x, y et z issus de Exemple 1 : Utiliser des paramètres personnalisés dans un composant.

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

Exemple 2 : Utiliser la dernière version du composant

Pour un composant disposant des versions 1.0.1, 1.0.2 et 1.0.3, spécifiez 1.0.* afin d'utiliser la dernière version correspondante (1.0.3).

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