我一直在尝试用Oracle Java(而不是openjdk)创建一个基于阿尔卑斯的docker镜像。我被特意要求在这里创建自己的形象。Docker alpine + oracle java:找不到java
这是Dockerfile我想出:
FROM alpine:3.6
RUN apk add --no-cache curl wget
RUN mkdir /opt/ && \
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie"\
http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz && \
tar xvf jdk-8u131-linux-x64.tar.gz -C /opt/ && \
rm jdk-8u131-linux-x64.tar.gz && \
ln -s /opt/jdk1.8.0_131 /opt/jdk
ENV JAVA_HOME /opt/jdk
ENV PATH $PATH:/opt/jdk/bin
RUN echo $JAVA_HOME && \
echo $PATH
RUN which java
RUN java -version
有一些不必要的命令(如呼应JAVA_HOME目录),它被添加到帮助调试,但现在我卡住了:RUN which java
按预期返回/opt/jdk/bin/java
,但RUN java -version
返回/bin/sh: java: not found
。
我已经尝试了一些东西,包括将可执行文件符号链接到/ usr/bin中,无济于事。
我错过了什么?
编辑:从码头工人 最终输出是: The command '/bin/sh -c java -version' returned a non-zero code: 127
最后编辑:
感谢diginoise为把我到MUSL VS libc中。我发现添加以下到我的Dockerfile让我建立一个工作形象:
RUN apk --no-cache add ca-certificates && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \
apk add glibc-2.25-r0.apk
找到在:https://github.com/sgerrand/alpine-pkg-glibc
你怎么没有回声$ JAVA_HOME和$ PATH得到什么? – Edwin
JAVA_HOME:'/ opt/jdk' PATH:'/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ opt/jdk/bin' – phanteh
你可以尝试'运行回声“$(java -version)”'? – Edwin