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).
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
ParametersetTasks: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.RemarqueRé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 |
|
|
|
|
RunPowerShellCommand |
|
|
|
|
InvokeCommand |
|
Exécute une commande courante. |
|
|
OSSDownload |
|
|
Aucune |
|
OSSUpload |
|
|
|
|
WebDownload |
|
Télécharge un fichier depuis une URL web. |
|
|
Reboot |
|
Redémarre l'instance. |
Format Dockerfile
|
Commande |
Syntaxe |
Description |
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Remarque
Dans le format |
|
WORKDIR |
|
Définit le répertoire de travail. |
|
COPY |
|
Copie des fichiers. Remarque
Les fichiers réseau sont téléchargés avec |
|
USER |
|
Définit l'utilisateur pour les commandes Remarque
|
|
LABEL |
|
|
|
CMD |
|
Spécifie la commande à exécuter au démarrage. |
|
ENTRYPOINT |
|
Spécifie la commande à exécuter au démarrage. Remarque
|
Commandes de modèle
|
Commande |
Syntaxe |
Description |
|
COMPONENT |
|
Spécifie un composant d'image système ou personnalisé.
|
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Remarque
Dans le format |
|
WORKDIR |
|
|
|
COPY |
|
Remarque
Les fichiers réseau sont téléchargés avec |
|
USER |
|
Remarque
|
|
LABEL |
|
|
|
CMD |
|
|
|
ENTRYPOINT |
|
Remarque
|
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.*