如何通过API启动hyper.sh容器? (收到'exec失败:没有这样的文件或目录错误)

时间:2017-10-04 17:37:40

标签: javascript node.js docker

我正在使用hyper.sh构建一个JS评分应用程序。当我通过API创建容器时,当我尝试启动它时(通过API或CLI),不会运行指定的命令。而是将'exec failed: no such file or directory写入日志。

我首先使用axios创建基于/ containers / create文档的容器。我在这里简化了一些内容,但它与文档中提供的内容相同。

var createOptions = {
  url: 'https://us-west-1.hyper.sh/containers/create',
  method: 'POST',
  credential: {
       accessKey: '...',
       secretKey: '...'
  },
  body: {
    "Hostname": "",
    "Domainname": "",
    "User": "",
    "AttachStdin": false,
    "AttachStdout": true,
    "AttachStderr": true,
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Cmd":[
      "date"
    ],
    "Entrypoint": "",
    "Image": "ubuntu",
    "Labels": {
      "com.example.vendor": "Acme",
      "com.example.license": "GPL",
      "com.example.version": "1.0",
      "sh_hyper_instancetype": "s4"
    },
    "WorkingDir": "",
    "NetworkDisabled": false,
    "ExposedPorts": {
      "22/tcp": {}
    },
    "StopSignal": "SIGTERM",
    "HostConfig": {
    ...
    }
  }
}

接下来,我运行超级启动$(id)。记录容器ID,但不运行Cmd中指定的命令。任何想法正在发生的事情将不胜感激。  谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

可以通过从容器选项中删除"Entrypoint": "",来修复此错误。

有关其他信息,似乎ENTRYPOINT和CMD是相关的,并且使用两者都是多余的。我在超级API文档中提出了一个问题澄清。