私有應用商店要遵循應用商店服務指定的格式才能夠正常的在Rancher中顯示出來。git
應用商店將會根據環境中的調度引擎來顯示不一樣的應用商店模板。github
templates
文件夾swarm-templates
文件夾mesos-templates
文件夾Rancher的基礎設施服務能夠從環境模板中啓用, 這些模板來自於infra-templates
文件夾。docker
這些服務從應用商店菜單中也能夠看到, 你能夠看到所有的基礎設施服務包括那些和當前的編排調度引擎不兼容的服務. 咱們建議從環境模板中啓用基礎設施服務,而不是直接從應用商店中啓動。ide
-- templates (Or any of templates folder) |-- cloudflare | |-- 0 | | |-- docker-compose.yml | | |-- rancher-compose.yml | |-- 1 | | |-- docker-compose.yml | | |-- rancher-compose.yml | |-- catalogIcon-cloudflare.svg | |-- config.yml ...
你須要建立一個templates
文件夾做爲根目錄。templates
文件夾將包含全部你想建立的應用的文件夾。咱們建議爲應用的文件夾起一個簡單明瞭的名稱。svg
在應用模板的文件夾中 (例如 cloudflare
), 將包含該應用模板的各個版本所對應的文件夾。第一個版本爲0
,後續每一個版本加1。好比,第二個版本應該在 1
文件夾中。每增長一個新版本的文件夾,你就可使用這個新版本的應用模版來升級你的應用了。另外,你也可直接更新0
文件夾中的內容並從新部署應用。ui
注意: 應用文件夾名稱須要爲一個單詞,文件名中不能包含空格。針對名字比較長的應用請使用
-
鏈接符。在config.yml
中的name
你可使用空格。this
在應用商店模板的文件夾中,如何展現應用商店模板詳細內容取決於兩個文件。spa
config.yml
,包含了應用模板的詳細信息。name: # 應用商店模板名稱 description: | # 應用商店模板描述 version: # 應用商店模板對應的版本 category: # 用於模板搜索時的目錄 maintainer: # 該模板的維護者 license: # 許可類型 projectURL: # 和模板相關的URL
catalogIcon-
。對於每個應用模板,將至少有如下三個部分組成: config.yml
, catalogIcon-entry.svg
, 以及 0
文件夾 - 包含該模板的第一個版本配置。code
docker-compose.yml
以及rancher-compose.yml
爲在Rancher中使用Rancher Compose啓動服務必須提供的兩個文件. 該文件將被保存在版本文件夾中。 (如: 0
, 1
, 等等)。orm
docker-compose.yml
爲一個可使用 docker-compose up
來啓動的文件。 該服務遵循docker-compose格式。
rancher-compose.yml
將包含幫助你自定義應用模板的其餘信息。在catalog
部分中,爲了應用模板能夠被正常使用,有一些選項是必填的。
你也能夠建立一個可選的 README.md
, 能夠爲模板提供一些較長的描述以及如何使用他們。
rancher-compose.yml
version: '2' catalog: name: # Name of the versioned template of the Catalog Entry version: # Version of the versioned template of the Catalog Entry description: # Description of the versioned template of the Catalog Entry minimum_rancher_version: # The minimum version of Rancher that supports the template, v1.0.1 and 1.0.1 are acceptable inputs maximum_rancher_version: # The maximum version of Rancher that supports the template, v1.0.1 and 1.0.1 are acceptable inputs upgrade_from: # The previous versions that this template can be upgraded from questions: #Used to request user input for configuration options
對於 upgrade_from
, 有三種值可使用。
"1.0.0"
">=1.0.0"
, "<=2.0.0"
">1.0.0 <2.0.0 || >3.0.0"
注意: 如同例子中的配置,請確保你配置的版本號或版本範圍帶上雙引號。
rancher-compose.yml
中的問題部分應用商店
中questions
部分容許用戶更改一個服務的一些配置選項。 其答案
將在被服務啓動以前被預配置在 docker-compose.yml
中.
每個配置選項都在rancher-compose.yml
的 questions
部分配置.
version: '2' catalog: questions: - variable: # A single word that is used to pair the question and answer. label: # The "question" to be answered. description: | # The description of the question to show the user how to answer the question. default: # (Optional) A default value that will be pre-populated into the UI required: # (Optional) Whether or not an answer is required. By default, it's considered `false`. type: # How the questions are formatted and types of response expected
type
控制了問題如何在UI中展示以及須要什麼樣的答案。
合法的格式有:
string
UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲字符串型格式。int
UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲整型格式。 UI會在服務啓動前對輸入進行校驗。boolean
UI中將經過單選按鈕獲取答案,獲取到的答案將被格式化爲true
或者 false
。 若是用戶選擇了單選按鈕,答案將被格式化爲 true
。password
UI中將顯示文本框來獲取答案,獲取到的答案將被設置爲字符串型格式。service
UI中將展現一個下拉框,全部該環境的服務都會顯示出來。enum
UI中將展現一個下拉框,options
中的配置將會被展現出來。version: '2' catalog: questions: - variable: label: description: | type: enum options: # List of options if using type of `enum` - Option 1 - Option 2
multiline
多行文本框會被顯示在UI中。version: '2' catalog: questions: - variable: label: description: | type: multiline default: | Each line would be shown on a separate line.
certificate
該環境的全部可用證書都會顯示出來。version: '2' catalog: questions: - variable: label: description: | type: certificate