简介: 本文主要为大家讲解如何使用 docker-compose 一键启停 Cromwell。

镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站

一、背景

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

本文转自:使用 docker-compose 一键启停 Cromwell-阿里云开发者社区

使用 docker-compose 一键启停 Cromwell相关推荐

  1. Linux自定义shell脚本一键启停微服务jar包

    Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行.在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包.而微服务打包形成的 ...

  2. 无需Java环境,Jar包一键启停(静默启停),开机自启,读取外部配置文件

    无需Java环境,Jar包一键启停(静默启停),开机自启,读取外部配置文件 前言 一.目录结构 1.根目录 2.bin 目录 3.conf 目录 4.target 目录 二.文件内容 1.startu ...

  3. kafka和zookeeper一键启停脚本(以及kafka关不掉问题解决)

    在设置kafka停止任务的时候需要注意修改配置文件 在kafka和zookeeper各自组件的bin下边配置文件 首先设置kafka的启停配置,在kafka的bin目录下 vim start-kafk ...

  4. MySQL NDB Cluster使用docker compose一键部署

    本文主要用来学习MySQL NDB Cluster 解决学习过程中的痛点:需要开启N台VMware虚拟机,电脑不堪重负 使用docker部署,完美解决 本文使用的docker image: mysql ...

  5. 一键启停hive脚本

    #编写hive脚本 [root@singlelucky ~]# lsbak kb12 script test2.log text.log[root@singlelucky ~]# cd script[ ...

  6. Tomcat 一键启停脚本 linux

    文章目录 一.脚本开发 1. 编写脚本 2. 修改脚本 3. 赋予权限 二.脚本执行 2.1. 启动tomact 2.2. 查看tomact状态 2.3. 停止tomact 一.脚本开发 1. 编写脚 ...

  7. Linux自定义shell脚本一键启停jar包

    Linux运行jar包脚本,我的 jar包和 .sh文件在同一目录. #!/bin/sh port=8090 #端口 jar_name=ruoyi-admin.jar #/usr/local/ry-v ...

  8. tomcat一键启停shell脚本

    #!/bin/bash# Author:FishRoad 2018-09-20pid=`ps -ef|grep tomcat|grep -v grep|awk '{print $2}'` echo $ ...

  9. 一键启停jar文件的sh脚本

    #!/bin/bash# jar包名称 JAR_NAME="my-app.jar"# 判断程序是否已经启动 function is_running {PID=$(ps aux | ...

最新文章

  1. Spring boot的properties文件编码设置
  2. win10电脑黑屏只有鼠标箭头_电脑开机进入系统后显示黑屏,只能看到一个鼠标指针,如何解决?...
  3. kafka系统设计开篇
  4. [C++程序设计]字符数组的赋值与引用
  5. javascript文本对象
  6. iPhone手机更换自定义铃声
  7. 不要有思维的惯性, 做每件事情之前, 都【确认好要做什么】!
  8. Python内置函数(61)——eval
  9. ccf 推荐会议和期刊
  10. 什么是非参数检验?应该如何操作与分析?
  11. 如何查看一篇论文是否被SCI检索
  12. linux安装程序企鹅,在Linux上安装小企鹅输入法
  13. ORA-01790: expression must have same datatype as corresponding expression
  14. 我在 B 站挖到了 9 款深藏不露的工具,每个都好用到爆!
  15. 用C#写一个微信登录软件(自己写协议)
  16. 3个结点的树和有3个结点的二叉树的所有不同的形态
  17. web audio api 实现音频播放
  18. 史上最强!目标检测数据集标注工具网页版
  19. 八百呼电话录音系统--让通讯管理更安心
  20. ai论文调研——PAMI Popular Articles (December 2015)

热门文章

  1. 索引的类型分类、区别、优缺点
  2. Linux连接不上Xshell?
  3. WIN11和WIN10局域网打印机共享0x0000011b错误
  4. Plant Simulation中工人从传送带上取物料
  5. gtx1050双显卡 linux,ubuntu16.04+GTX1050-Ti+cuda8.0(解决桌面重复登录)
  6. SpringBoot连接Oracle数据库报ORA-01017: invalid username/password; logon denied
  7. java中轻量级数据库ORM框架:JOOQ
  8. CSS如何使背景图片自适应?
  9. TensorFlow中MNIST数据集不能下载的问题解决
  10. 出现段错误的常见原因与解决方案(一步解决)