在docker镜像上在Docker上安装Java
问题描述:
我想在docker镜像中的docker上安装openjdk。当我尝试这是收到此错误信息:在docker镜像上在Docker上安装Java
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一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
...
+0
如果我需要使用另一个基础图像? –
+0
那么可能你将不得不用java安装从你的特定基本映像中烘焙图像。但是在大多数情况下,如果基本映像需要Java,它们很可能已经烘焙了包含Java的映像。 – Leon
具有零做搬运工。这是一个阿尔卑斯山的禁忌。删除版本,它工作正常。 – user2105103
它也直接告诉你问题是什么。 – johnharris85