从本地可执行文件创建dc/os应用程序部署

kwvwclae  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(355)

我正在试用dc/os,我想尝试一下本机文件运行功能,在不使用docker的情况下运行本机可执行文件https://dcos.io/docs/1.8/usage/tutorials/dcos-101/app2/
我可以成功地学习教程,但是我想使用我自己的应用程序(一个自包含的可执行文件),在线文档说fetch命令除了支持https://uri和其他文件外,还支持file://uri(https://mesosphere.github.io/marathon/docs/application-basics.html)
因此,如果我使用教程中的应用程序部署清单作为基础,但我已将可执行文件上载到位于/home/core/app的主节点(在linux文件系统中),并将uri更改为“file:///home/core/app”,部署说明
i0127 14:42:06.533756 40159取数器。cpp:167]正在复制资源command:cp '/home/core/app'/var/lib/mesos/slave/slaves/a0ff5689-5816-4812-864b-b3c4b914a272-s0/frameworks/a0ff5689-5816-4812-864b-b3c4b914a272-0000/executors/dcos-101_app2.c641de8d-e49e-11e6-93c4-de7054394bed/runs/f2666a00c-1179-48bb-9f1e-251f3eae1272/app'cp:cannot stat“/home/core/app”:没有这样的文件或目录
使用安装在coreos上的dc/os 1.8,并带有一个主机和一个代理(仅用于开发测试)
我确信我只是缺少了一些基本的东西,比如mesos文件系统,但是我到处都找了一个教程,他们要么假设你使用docker,要么通过http提供服务…没有文件://
因此,当使用文件//uri时,它的位置是否与linux文件系统不同,或者我是否遗漏了其他内容。
对于dc/os新手,请提供一些帮助
谢谢
编辑
这是app.json文件

{
  "id": "/dcos-101/app2",
  "cmd": "chmod u+x app && ./app",
  "args": null,
  "user": null,
  "env": null,
  "instances": 1,
  "cpus": 1,
  "mem": 128,
  "disk": 0,
  "gpus": 0,
  "executor": null,
  "constraints": null,
  "fetch": [
    {
      "uri": "file:///home/core/app"
    }
  ],
  "storeUrls": null,
  "backoffSeconds": 1,
  "backoffFactor": 1.15,
  "maxLaunchDelaySeconds": 3600,
  "container": null,
  "healthChecks": null,
  "readinessChecks": null,
  "dependencies": null,
  "upgradeStrategy": {
    "minimumHealthCapacity": 1,
    "maximumOverCapacity": 1
  },
  "acceptedResourceRoles": null,
  "ipAddress": null,
  "residency": null,
  "secrets": null,
  "taskKillGracePeriodSeconds": null,
  "portDefinitions": [
    {
      "protocol": "tcp",
      "port": 10000,
      "labels": {
        "VIP_0": "/dcos-101/app2:10000"
      }
    }
  ],
  "labels": {
    "HAPROXY_GROUP": "external"
  },
  "requirePorts": false
}
balp4ylt

balp4ylt1#

那是行不通的,除非 /home/core/app 存在于每个代理节点上,或者您将其更改为(例如)外部http url。什么 fetch does是:它将列出的文件下载到mesos沙盒中,具体取决于使用的uri模式。既然你用的是 file: 在schema中,mesos尝试在启动任务的代理(而不是主代理)上下载它。

相关问题