鏡像構(gòu)建服務(wù)命令
鏡像構(gòu)建服務(wù)通過鏡像模板實(shí)現(xiàn)對(duì)鏡像內(nèi)容的定制,鏡像模板可以通過指定鏡像組件或直接指定命令來創(chuàng)建,鏡像組件本質(zhì)是由一條或多條命令構(gòu)成,因此最小單元是命令。本文提供了鏡像構(gòu)建服務(wù)的常用命令格式和示例供您參考。
命令語法說明
鏡像構(gòu)建服務(wù)支持YAML(適用于Linux和Windows)和Dockerfile(僅適用于Linux)兩種格式的命令。
使用Dockerfile格式的命令不夠靈活且有操作系統(tǒng)限制,推薦您使用YAML格式。
YAML和Dockerfile兩種格式的語法要求如下:
YAML:需要定義
Parameters
和Tasks
,語法如下。Parameters: # 用于定義自定義參數(shù),可選 param1: # 參數(shù)名,必填 Type: String # 參數(shù)類型,必填,String/Number/Boolean之一 DefaultValue: defaultValue #參數(shù)默認(rèn)值,選填,當(dāng)參數(shù)沒有默認(rèn)值時(shí),使用的組件的模板需要顯式傳入 Tasks: # 用于定義組件的任務(wù)列表,依次執(zhí)行, 至少包含一個(gè)task - Name: taskName1 # 任務(wù)名稱,必填 Action: RunShellCommand # 任務(wù)的動(dòng)作,必填,可以參考YAML格式組件命令集 Properties: # 動(dòng)作參數(shù),取決于具體選用的action commandContent: echo {{ param1 }} # 引用自定義參數(shù) - Name: taskName2 Action: action2 Properties: action2Property1: {{ taskName1.stdout }} # 引用taskName1的輸出
說明您可以在Tasks字段的屬性內(nèi)引用上述定義的參數(shù)。引用的語法如下:
{{taskName1.stdout}}
Dockerfile
每行一條命令。
同一個(gè)命令允許設(shè)置多行,換行需要在前一行的末尾添加換行符(\)。
鏡像構(gòu)建服務(wù)支持的命令
鏡像構(gòu)建服務(wù)在控制臺(tái)和API分別創(chuàng)建組件時(shí),組件支持的命令格式說明如下。
組件命令(控制臺(tái)和API均支持)
(推薦)YAML格式
命令 | 命令格式或示例 | 說明 | 輸出 |
RunShellCommand |
|
|
|
RunPowerShellCommand |
|
| |
InvokeCommand |
| 執(zhí)行一條公共命令。 | |
OSSDownload |
|
| 無 |
OSSUpload |
|
| |
WebDownload |
| 從網(wǎng)絡(luò)上下載文件。 | |
Reboot |
| 重啟服務(wù)器。 |
Dockerfile格式
命令 | 命令格式或示例 | 說明 |
RESTART |
|
|
RUN |
|
|
ENV |
|
說明 使用 |
WORKDIR |
| 設(shè)置工作目錄。 |
COPY |
| 復(fù)制文件。 說明 網(wǎng)絡(luò)文件統(tǒng)一使用 |
USER |
| 設(shè)置執(zhí)行命令的用戶。 說明 變量 |
LABEL |
|
|
CMD |
| 開機(jī)自啟動(dòng)。 |
ENTRYPOINT |
| 開機(jī)自啟動(dòng)。 說明
|
模板命令(Dockerfile格式,僅API支持)
命令 | 命令格式或示例 | 說明 |
COMPONENT |
| 指定鏡像組件,支持指定系統(tǒng)組件或您創(chuàng)建的自定義組件。
|
RESTART |
|
|
RUN |
|
|
ENV |
|
說明 使用 |
WORKDIR |
|
|
COPY |
|
說明 網(wǎng)絡(luò)文件統(tǒng)一使用 |
USER |
|
說明 變量 |
LABEL |
|
|
CMD |
|
|
ENTRYPOINT |
|
說明
|
組件命令示例
您在創(chuàng)建鏡像組件時(shí)可以選擇構(gòu)建組件(Build)或測(cè)試組件(Test),可以直接拷貝如下示例模板命令并根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景進(jìn)行修改。
構(gòu)建組件(Build)用于自定義您的鏡像內(nèi)容,只能在構(gòu)建模板中使用。
測(cè)試組件(Test)用于測(cè)試您的鏡像是否符合預(yù)期,只能在測(cè)試模板中使用。
構(gòu)建組件(Build)
Linux系統(tǒng)
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunShellCommand
Properties:
commandContent: echo {{HelloWorld.stdout}}
Windows系統(tǒng)
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunPowerShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunPowerShellCommand
Properties:
commandContent: echo {{HelloWorld.stdout}}
測(cè)試組件(Test)
Linux系統(tǒng)
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunShellCommand
Properties:
commandContent: |-
echo {{HelloWorld.stdout}}
exit 0
Windows系統(tǒng)
Parameters:
message:
Type: String
DefaultValue: hello world
Tasks:
- Name: HelloWorld
Action: RunPowerShellCommand
Properties:
commandContent: echo {{messgae}}
- Name: HelloWorldAgain
Action: RunPowerShellCommand
Properties:
commandContent: |-
echo {{HelloWorld.stdout}}
exit 0