Pelajari sintaks dan penggunaan perintah YAML serta Dockerfile untuk komponen dan templat Image Builder.
Sintaks perintah
Image Builder mendukung dua format perintah: YAML (Linux dan Windows) dan Dockerfile (hanya Linux).
Perintah Dockerfile kurang fleksibel dan terbatas pada Linux. Gunakan format YAML bila memungkinkan.
Format YAML dan Dockerfile menggunakan sintaks berikut:
-
YAML: Definisikan bagian
ParametersdanTasks:Parameters: # Opsional. Mendefinisikan parameter kustom. param1: # Wajib. Nama parameter. Type: String # Wajib. Tipe parameter. Nilai yang valid: String, Number, dan Boolean. DefaultValue: defaultValue # Opsional. Nilai default parameter. Jika tidak ditentukan, Anda harus secara eksplisit memberikan nilai saat menggunakan komponen gambar dalam templat gambar. Tasks: # Wajib. Mendefinisikan daftar tugas untuk komponen gambar. Tugas dijalankan secara berurutan. Setidaknya satu tugas harus disertakan. - Name: taskName1 # Wajib. Nama tugas. Action: RunShellCommand # Wajib. Aksi untuk tugas. Untuk informasi lebih lanjut, lihat perintah komponen dalam format YAML. Properties: # Properti dari aksi. Properti yang tersedia bergantung pada aksi yang ditentukan. commandContent: echo {{ param1 }} # Merujuk ke parameter kustom. - Name: taskName2 Action: action2 Properties: action2Property1: {{ taskName1.stdout }} # Merujuk ke output taskName1.CatatanRujuk parameter yang telah didefinisikan dalam properti tugas:
{{taskName1.stdout}} -
Dockerfile
-
Setiap baris berisi satu perintah.
-
Satu perintah dapat mencakup beberapa baris. Tambahkan backslash (\) di akhir setiap baris untuk melanjutkan ke baris berikutnya.
-
Perintah yang didukung
Image Builder mendukung perintah berikut untuk komponen dan templat.
Perintah komponen
Format YAML
|
Perintah |
Sintaks |
Deskripsi |
Output |
|
RunShellCommand |
|
|
|
|
RunPowerShellCommand |
|
|
|
|
InvokeCommand |
|
Menjalankan perintah umum. |
|
|
OSSDownload |
|
|
Tidak ada |
|
OSSUpload |
|
|
|
|
WebDownload |
|
Mengunduh file dari URL web. |
|
|
Reboot |
|
Merestart instans. |
Format Dockerfile
|
Perintah |
Sintaks |
Deskripsi |
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Catatan
Dalam format |
|
WORKDIR |
|
Menetapkan direktori kerja. |
|
COPY |
|
Menyalin file. Catatan
File jaringan diunduh dengan |
|
USER |
|
Menetapkan pengguna untuk perintah Catatan
|
|
LABEL |
|
|
|
CMD |
|
Menentukan perintah yang dijalankan saat startup. |
|
ENTRYPOINT |
|
Menentukan perintah yang dijalankan saat startup. Catatan
|
Templat perintah
|
Perintah |
Sintaks |
Deskripsi |
|
COMPONENT |
|
Menentukan komponen gambar sistem atau kustom.
|
|
RESTART |
|
|
|
RUN |
|
|
|
ENV |
|
Catatan
Dalam format |
|
WORKDIR |
|
|
|
COPY |
|
Catatan
File jaringan diunduh dengan |
|
USER |
|
Catatan
|
|
LABEL |
|
|
|
CMD |
|
|
|
ENTRYPOINT |
|
Catatan
|
Contoh perintah
Contoh berikut menunjukkan perintah komponen dan templat untuk kasus penggunaan umum.
Komponen perintah
Contoh 1: Gunakan parameter kustom
Komponen ini menghitung (3x+2y+z)+(3x+2y+z) dengan parameter kustom x, y, dan z. Lihat Contoh 1: Asosiasikan templat dengan komponen dan berikan nilai ke parameter kustomnya untuk perintah templat yang sesuai.
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}}))
Contoh 2: Konfigurasikan skrip dari OSS
Buat gambar dari skrip Linux di OSS untuk membuat instans ECS dengan konfigurasi identik. Aksi OSSDownload dan OSSUpload menghilangkan kebutuhan untuk menyematkan Pasangan Kunci Akses secara langsung.
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
Templat perintah
Contoh 1: Asosiasikan komponen dan berikan parameter
Berikan nilai ke parameter x, y, dan z dari Contoh 1: Gunakan parameter kustom dalam komponen.
COMPONENT i-xxxxxxxxx --x 1 --y 2 --z 3
Contoh 2: Gunakan versi komponen terbaru
Untuk komponen dengan versi 1.0.1, 1.0.2, dan 1.0.3, tentukan 1.0.* untuk menggunakan versi terbaru yang sesuai (1.0.3).
COMPONENT acs:ecs:cn-hangzhou:<alibaba_cloud_account_id>:imagecomponent/<your_component_name>/1.0.*