代码之家  ›  专栏  ›  技术社区  ›  pkaramol

在路径(和可执行文件)中找不到Docker入口点

  •  1
  • pkaramol  · 技术社区  · 7 年前

    我正在创建一个简单的图像 Dockerfile

    FROM docker:latest
    
    COPY docker-entrypoint.sh /usr/local/bin
    
    ENTRYPOINT ['docker-entrypoint.sh']
    

    在我的容器内:

    / # ls -al $(which docker-entrypoint.sh)
    -rwxrwxr--    1 root     root           476 Jul 26 07:30 /usr/local/bin/docker-entrypoint.sh
    

    所以入口点文件是 二者都 PATH 可执行文件;

    但跑步时

    docker run -v /var/run/docker.sock:/var/run/docker.sock -it imageinit
    /bin/sh: [docker-entrypoint.sh]: not found
    

    我知道 this SO question 但这是关于 路径 和文件权限(已寻址);

    1 回复  |  直到 6 年前
        1
  •  4
  •   joelnb    7 年前

    有趣的是,您的问题似乎与您选择使用的报价类型有关。如果更改此行:

    ENTRYPOINT ['docker-entrypoint.sh']
    

    ENTRYPOINT ["docker-entrypoint.sh"]
    

    然后一切都按预期开始了。

    如果你检查 the documentation for the type of ENTRYPOINT you are using 所有的例子都有双引号。

    我怀疑当你使用单引号时发生的事情是Docker正在将其解析为 入口点 尝试执行一个名为 [docker-entrypoint.sh] 这将解释错误消息(显然不存在该名称的脚本)。

    推荐文章