天天看點

使用 docker-compose 一鍵啟停 Cromwell一、背景二、開通 ECS 作為 Crowmell server三、第一次配置與啟動服務四、停止服務五、再次啟動服務六、重新配置并啟動服務七、使用option檔案設定預設運作時參數

使用 docker-compose 一鍵啟停 Cromwell一、背景二、開通 ECS 作為 Crowmell server三、第一次配置與啟動服務四、停止服務五、再次啟動服務六、重新配置并啟動服務七、使用option檔案設定預設運作時參數

鏡像下載下傳、域名解析、時間同步請點選

阿裡巴巴開源鏡像站

一、背景

Cromwell server 的啟動需要以下元件配合:

  • 啟動 Mysql 的 docker 容器作為 Crowmell 的持久化資料庫,包括配置使用者名,密碼等
  • 填寫 Cromwell 配置檔案,包括 BCS 後端配置及資料庫等配置
  • 使用 Cromwell 的 jar 包,啟動 server

實際上 Cromwell 除了釋出 jar 包,也會釋出對應的 docker 鏡像,我們可以考慮使用 docker-compose來簡化以上步驟。docker-compose 是 Docker 官方的開源項目,其定位是定義和運作多個 Docker 容器的應用(Defining and running multi-container Docker applications)。

使用docker-compose 可以将容器化的 Cromwell 和 Mysql 兩個 service 拉起,作為一個應用來運作。再配合腳本來簡化配置,可以将 Cromwell 的服務做成一鍵啟停。

二、開通 ECS 作為 Crowmell server

首先使用

Cromwell server 鏡像

 開通一台 ECS,ssh 登入機器後,可以運作目錄下的cromwell-server.sh,進行Cromwell Server的管理:

1. # ./cromwell-server.sh
2. cromwell-server.sh - init cromwell config and start/stop service
3. Usage: cromwell-server.sh [options...] [init/start/stop/status]
4. Options:
5.   --id=STRING           Access id
6.   --key=STRING          Access key
7.   --root=STRING         Oss root ****for**** cromwell, e.g: oss://my-bucket/cromwell/
8.   --instance=STRING     default runtime: instance **type** [ecs.sn1.medium]
9.   --image=STRING        default runtime: image id [img-ubuntu-vpc]           

三、第一次配置與啟動服務

初次使用,需要做一些初始配置,可以使用下面的指令完成一鍵初始化與啟動:

1. ./cromwell-server.sh init --id=LTAI8xxxxx --key=vVGZVE8qUNjxxxxxxxx --root=oss://gtx-wgs-demo/cromwell/           

上面的指令完成了以下配置:

  • --id

    : 批量計算的 Access Id
  • --key

    : 批量計算的 Access Key
  • --root

    : Crowmell 運作時在 OSS 上的工作根目錄
  • --instance

    : Cromwell 預設運作時參數,執行個體類型
  • --image

    : Cromwell 預設運作時參數,鏡像ID執行完以上指令後,會根據 Crowmell 配置檔案模闆生成配置檔案,并通過 docker-compose 啟動 Cromwell server,并在背景運作。

服務啟動後,就可以通過鏡像中的指令行工具 widdler 執行工作流的送出:

1. **cd** /home/cromwell/cromwell/ 
2. widdler run echo.wdl inputs.json -o bcs_workflow_tag:test_echo           

四、停止服務

使用下面的指令可以一鍵停止服務:

1. ./cromwell-server stop           

五、再次啟動服務

在已經完成配置的情況下,使用下面的指令,可以完成服務啟動:

1. ./cromwell-server start           

六、重新配置并啟動服務

如果需要修改配置,在服務停止的情況下,再次使用 init 指令可以完成新配置重新啟動:

1. ./cromwell-server.sh init --id=LTAI8xxxxx --key=vVGZVE8qUNjxxxxxxxx --root=oss://gtx-wgs-demo/cromwell/           

七、使用option檔案設定預設運作時參數

在 Crowmell 的配置檔案中,可以設定每個 backend 的預設運作時參數 default-runtime-attibutes,也可以在送出工作流時通過 option 覆寫原有設定。

是以如果您在送出工作流時用到了資料盤、NAS等,都可以在 option 檔案中設定:

1. {
2.     "default_runtime_attributes": {
3.         "vpc": "192.168.0.0/24",
4.         "autoReleaseJob": **true**,
5.         "mounts": "nas://1f****04-xkv88.cn-beijing.nas.aliyuncs.com:/ /mnt/ true",
6.         "dataDisk": "cloud_ssd 250 /home/mount/"
7.     },
8.     "bcs_workflow_tag": "Tagxxx",
9.     "read_from_cache": **true**
10. }           

使用 widdler 指令行的

-O

(大寫的O)參數送出 option 檔案:

1. widdler run echo.wdl inputs.json -O options.json           
提供全面,高效和穩定的系統鏡像、應用軟體下載下傳、域名解析和時間同步服務。”