Docker Swarm一次性服务跑步者
swarmer的Python项目详细描述
swarmer
从Docker群中运行服务的Python应用程序和API。
注
版本0.2.6和版本0.3.0之间有一些显著的变化 更改swarmer的安装方式并将身份验证提供给private 码头登记处。本文件将很快更新以反映这一点。
工作原理
蜂群生活在一个码头群内的服务。一旦曝光,它提供了 激活一次性Docker服务运行的API。有一个配套的应用程序 负责将结果报告回此服务的服务。一劳永逸 作业中的任务已完成,完整的结果集将发布回指定的 回调URL。
客户
而与在另一个容器中运行主题代码兼容的任何客户端 基于传递的值将起作用,您可以查看一个默认客户机。此列表 将在更多默认客户端可用时更新:
依赖关系
要运行此映像,需要有可用的redis服务,要接收结果,您将 需要一个接受post数据(application/json)的回调url,可以从swarm访问 地点。
入门
你可以在这个存储库中使用compose示例,并在Docker Swarm中运行它
通过docker stack deploy -c docker-compose.yml
,更改您认为合适的任何值。
一旦启动,将有一个服务暴露在您的群地址,您可以 将作业发布到。
初始请求
当您想提交一个新作业时,您可以向/submit
端点发送一个请求,其中
application/json
的内容类型和具有以下内容的正文:
{"image_name":"some-image:latest","callback_url":"your postback url"}
您将收到一个带有标识符的响应,这是您可以用来提交的唯一作业ID 工作任务。
添加任务
创建作业后,可以向其提交任务列表。这是通过
/submit/<identifier>/tasks
终点后,其中identifier
是您的id值
在创建作业时给定。此请求的正文应如下所示:
{
"tasks": [
{
"task_name": "<Name>",
"task_args": ["arg-one", "arg-two", ...]
},
...
]
}
任务提交后,它们将立即开始运行。
检查作业的状态
如果您有一个要检查的正在运行的作业,可以发送
对/status/<identifier>
资源的get请求,其中identifier
是你工作的ID值。
获取结果
完成作业的所有任务后,指定的url
在callback_url
字段中,将接收带有
收集结果。一般格式为:
{"__image":"your image","__callback_url":"your url","tasks":[{"name":"task name","status":0,"args":["your","args"],"result":{"stdout":"the output written to stdout","stderr":"the output written to stderr"}},...]}对于每一个任务,都表示退出。 任务进程的状态,而
result
对象
包含任务写入这两个对象的输出
输出流。