如何在python3.7的Docker中运行java10?

时间:2019-06-20 14:47:29

标签: java python docker circleci

我有一个使用python:3.6.6-stretch的circleci版本。我的大多数服务都使用python,但我也需要java10 + maven。

现在似乎无法在python3 docker中安装java10。

拥有支持python和java的docker的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

Java 10不再受支持,并且已从大多数PPA中删除。尽可能不要使用它。

但是如果您仍然特别需要Java 10,可以看看how it is installed on top of an Ubuntu image by AdoptOpenJDK project

您的Dockerfile可能看起来像这样:

FROM python:3.6.6-stretch

RUN rm -rf /var/lib/apt/lists/* && apt-get clean && apt-get update && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/*

RUN set -eux; \
    curl -Lso /tmp/openjdk.tar.gz https://github.com/AdoptOpenJDK/openjdk10-releases/releases/download/jdk-10.0.2%2B13/OpenJDK10_x64_Linux_jdk-10.0.2%2B13.tar.gz; \
    mkdir -p /opt/java/openjdk; \
    cd /opt/java/openjdk; \
    tar -xf /tmp/openjdk.tar.gz; \
    jdir=$(dirname $(dirname $(find /opt/java/openjdk -name javac))); \
    mv ${jdir}/* /opt/java/openjdk; \
    rm -rf ${jdir} /tmp/openjdk.tar.gz;

ENV JAVA_HOME=/opt/java/openjdk \
    PATH="/opt/java/openjdk/bin:$PATH"

注意:我放弃了一些SHA总和检查,以使命令更短。

答案 1 :(得分:0)

因此,我对公共PPA进行了一些研究,但找不到包含针对Debian-stretch的open-jdk10编译版本的PPA。有一个适用于多个版本的Ubuntu。 如果您想安装maven + python 3 + java 10,我想您有几个选择。

  1. 使用maven + java 10查找映像,然后自己安装python 3。
  2. 手动下载并安装JDK,并设置正确的变量以将其添加到PATH中。参见https://www.rosehosting.com/blog/how-to-install-java-10-on-debian-9/
  3. 使用这样的基于Ubuntu的映像(https://github.com/FNNDSC/ubuntu-python3/blob/master/Dockerfile),以便您可以使用此PPA,该PPA具有openjdk的10版本。