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).
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
ParameterseTasks: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.NotaPara 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 |
|
|
|
|
RunPowerShellCommand |
|
|
|
|
InvokeCommand |
|
Executa um comando comum. |
|
|
OSSDownload |
|
|
Nenhuma |
|
OSSUpload |
|
|
|
|
WebDownload |
|
Baixe um arquivo de uma URL da web. |
|
|
Reboot |
|
Reinicia a instância. |
Formato Dockerfile
|
Comando |
Sintaxe |
Descrição |
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Nota
No formato |
|
WORKDIR |
|
Define o diretório de trabalho. |
|
COPY |
|
Copia arquivos. Nota
O baixe de arquivos de rede ocorre com |
|
USER |
|
Define o usuário para os comandos Nota
|
|
LABEL |
|
|
|
CMD |
|
Especifique o comando a ser executado na inicialização. |
|
ENTRYPOINT |
|
Especifique o comando a ser executado na inicialização. Nota
|
Comandos de modelo
|
Comando |
Sintaxe |
Descrição |
|
COMPONENT |
|
Especifique um componente de imagem do sistema ou personalizado.
|
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Nota
No formato |
|
WORKDIR |
|
|
|
COPY |
|
Nota
O baixe de arquivos de rede ocorre com |
|
USER |
|
Nota
|
|
LABEL |
|
|
|
CMD |
|
|
|
ENTRYPOINT |
|
Nota
|
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.*