在Docker镜像中的docker上安装Java

我想在docker镜像中的docker上安装openjdk。 当我尝试这个是得到这个错误消息:


 fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community ERROR: unsatisfiable constraints: openjdk8-8.121.13-r0: breaks: world[openjdk8=8.111.14-r0] The command '/bin/sh -c set -x && apk add --no-cache openjdk8="$JAVA_ALPINE_VERSION" && [ "$JAVA_HOME" = "$(docker-java-home)" ]' returned a non-zero code: 1 

我的Dockerfile目前看起来像这样:


 FROM docker:latest RUN apk update ENV LANG C.UTF-8 RUN { \ echo '#!/bin/sh'; \ echo 'set -e'; \ echo; \ echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ } > /usr/local/bin/docker-java-home \ && chmod +x /usr/local/bin/docker-java-home ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin ENV JAVA_VERSION 8u111 ENV JAVA_ALPINE_VERSION 8.111.14-r0 RUN set -x \ && apk add --no-cache \ openjdk8="$JAVA_ALPINE_VERSION" \ && [ "$JAVA_HOME" = "$(docker-java-home)" ] 

有关官方Java映像如何在Alpine映像上烘焙的Dockerfile参考: https : //github.com/docker-library/openjdk/blob/9a0822673dffd3e5ba66f18a8547aa60faed6d08/8-jdk/alpine/Dockerfile

或者你可以用另一种方式来做,

 # build ontop of official Java image FROM java:openjdk-8-jdk-alpine RUN apk update && \ apk add docker ...