【问题标题】:Docker entrypoint can't find fileDocker 入口点找不到文件
【发布时间】:2018-06-04 13:54:23
【问题描述】:

我有一个非常简单的 docker 构建文件:

FROM openjdk:10

ENV JENAVERSION=3.7.0

RUN mkdir /fuseki

RUN wget http://apache.claz.org/jena/binaries/apache-jena-fuseki-$JENAVERSION.tar.gz -P /tmp \
    && tar -zxvf /tmp/apache-jena-fuseki-$JENAVERSION.tar.gz -C /tmp \
    && mv -v /tmp/apache-jena-fuseki-$JENAVERSION/* /fuseki

EXPOSE 3030

ENTRYPOINT ["/bin/bash", "/fuseki/fuseki-server"]

我在 CMD 和 ENTRYPOINT 上尝试了不同的变体,但没有任何东西允许“fuseki-server”执行。总是出现“没有这样的文件或目录”错误。如果我从 openjdk:10 手动创建一个空容器,并手动执行每个命令,它工作正常。怎么回事?

【问题讨论】:

    标签: docker docker-compose dockerfile


    【解决方案1】:

    我认为问题在于行尾 - 入口点需要有 LF 行尾。 当我的入口点有 CLRF 行结束时,我得到了同样的错误。

    【讨论】:

    • 这绝对帮助了我!在 Windows 上,我的 git 客户端默认设置为使用 CRLF,因此在本地构建映像正是以这种方式失败。谢谢!
    【解决方案2】:

    如果我构建并运行您的Dockerfile,我会收到与您描述的不同的错误。我明白了:

    Can't find jarfile to run
    

    如果您查看 fuseki-server shell 脚本,它会尝试查找相对于您当前目录或 $FUSEKI_HOME 环境变量的 jar 文件:

    export FUSEKI_HOME="${FUSEKI_HOME:-$PWD}"
    
    if [ ! -e "$FUSEKI_HOME" ]
    then
        echo "$FUSEKI_HOME does not exist" 1>&2
        exit 1
        fi
    
    JAR1="$FUSEKI_HOME/fuseki-server.jar"
    JAR2="$FUSEKI_HOME/jena-fuseki-server-*.jar"
    JAR=""
    

    因此,如果您在您的 Dockerfile:

    ENV FUSEKI_HOME=/fuseki
    

    然后容器启动无误:

    [2018-06-04 14:02:17] Server     INFO  Apache Jena Fuseki 3.7.0
    [2018-06-04 14:02:17] Config     INFO  FUSEKI_HOME=/fuseki
    [2018-06-04 14:02:17] Config     INFO  FUSEKI_BASE=/run
    [2018-06-04 14:02:17] Config     INFO  Shiro file: file:///run/shiro.ini
    [2018-06-04 14:02:18] Server     INFO  Started 2018/06/04 14:02:18 UTC on port 3030
    

    【讨论】:

    • 这真的很奇怪。该软件包实际上包括三种启动服务器的方法,一个 .jar 文件 (fuseki-server.jar)、一个 bash 脚本 (fuseki-server) 和一个 .war 文件 (fuseki-server.war) 我正在尝试运行纯脚本并获取“/fuseki/fuseki-server:没有这样的文件或目录”。我不知道为什么它会直接跳转到 .jar 文件。
    【解决方案3】:

    哇...在通过@larsk 的建议后,我想到将入口点更改为

    ENTRYPOINT ["tail", "-f", "/dev/null"] 
    

    然后进入容器查看实际存在的内容。事实证明,我不小心用我正在使用的撰写文件中的卷声明覆盖了 /fuseki 文件夹。 (捂脸……)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-04
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多