• 软件
  • shinyproxy 部署问题,未指定明确命令

我在shinyproxy部署当中报如下错误:
Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: POST http://127.0.0.1:2375/containers/create: 400, body: {"message":"No command specified"}
其中两个配置文件如下:
application.yml

  • id: euler
        display-name: euler test
        description: rootcause analysis
        container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
        container-image: 6aa1971d8ec0
        access-groups: scientists
    dockerfile:
    EXPOSE 3838
    CMD ["R", "-e", "shiny::runApp('/root/euler')"]

一直未找到解决方案,望论坛大佬指点指点。

这个问题我不懂。看它闲置了两天,我刚好在测试 ChatGPT,就问了一下。它的回答如下:

这个错误的原因是在创建容器时没有指定命令,因此 Docker API 返回了 400 错误。在您的配置文件中,container-cmd 已经设置为 ["R", "-e", "shiny::runApp('/root/euler')"],因此似乎不应该出现这个问题。

不过,根据您的描述,这个问题可能是由于 Docker API 没有正确地将您的 container-cmd 设置传递给容器。为了解决这个问题,您可以尝试在 Dockerfile 中设置 CMD 指令,并将其设置为与 container-cmd 相同的值,例如:

cssCopy codeFROM <base_image>

EXPOSE 3838

CMD ["R", "-e", "shiny::runApp('/root/euler')"]

请确保在构建 Docker 镜像时使用此 Dockerfile,然后在应用程序配置文件中将 container-image 设置为该镜像的名称或 ID。重新启动 ShinyProxy 并尝试再次启动应用程序,看看问题是否已解决。

另外,请确保您的 Docker API 已正确配置。如果您在本地运行 Docker,可以尝试使用以下命令来测试 Docker API 是否正在运行:

bashCopy code
curl http://localhost:2375/info

如果 Docker API 已正确运行,您应该能够看到一些有关 Docker 守护程序的信息。如果看到错误消息,请检查 Docker API 的配置并尝试重新启动 Docker 守护程序。

请楼主和各位大佬看看是不是靠谱。

    dapengde
    谢谢大鹏哥,后来我折腾了很久,从官网上下载了shinyproxy-2.6.1.jar包后,替换安装时生成的jar后,该问题就消失了。

      zizhou 呃,这么说来 ChatGPT 又在一本正经地胡说八道啦? 😅