我有一个非常简单的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手动创建一个空容器,并手动执行每个命令,它工作正常 . 这是怎么回事?
2 回答
如果我构建并运行你的
Dockerfile
,我会得到与你所描述的不同的错误 . 我知道了:如果查看
fuseki-server
shell脚本,它会尝试相对于当前目录或$FUSEKI_HOME
环境变量找到jar文件:因此,如果在
Dockerfile
中设置FUSEKI_HOME
环境变量:然后容器启动而没有错误:
哇...在经过@ larsk的建议后,我发现将入口点更改为
并进入容器,看看实际上是什么 . 事实证明,我意外地在我正在使用的撰写文件中用卷声明覆盖/ fuseki文件夹 . (捂脸......)