gpt4 book ai didi

docker - 如何在 Dockerfile 中转义 CMD

转载 作者:行者123 更新时间:2023-12-02 19:11:36 26 4
gpt4 key购买 nike

我尝试通过以下语法排列在 docker 内启动服务器:

  • CMD [ "forever", "start", "server/server.js" ]
  • CMD [ "forever", "start", "server\/server.js" ]
  • CMD forever start server/server.js

  • 但他们每个人都失败了。

    前两个运行为 "forever start server" ... 注意丢失的 /server.js片。

    最后一个运行为 "/bin/sh -c 'forever "
    那么放置 forever start server/server.js 的正确语法是什么?在 Dockerfile 内将其作为独立容器运行?

    最佳答案

    我刚刚在运行 docker 容器中启动 Java 应用程序时遇到了同样的问题。

    从 docker 引用资料中,您有三个机会:

    CMD ["executable","param1","param2"]
    CMD ["param1","param2"]
    CMD command param1 param2

    看看这里: Docker CMD

    我不熟悉 JavaScript,但假设您要启动的应用程序是 Java 应用程序:
    CMD ["/some path/jre64/bin/java", "server.jar", "start", "forever", ...]

    正如您评论中的其他人所说,您还可以通过 docker ADD 添加脚本或 COPY在您的 Dockerfile并使用 docker RUN 启动它.

    另一个解决方案是运行 docker 容器并通过 docker run .. -v HOSTDIR:CONTAINERDIR 使用所需脚本安装目录。在容器内并使用 docker exec 触发该脚本.

    在这里阅读: Docker Filemounting + Docker Exec

    关于docker - 如何在 Dockerfile 中转义 CMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777885/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com