繁体   English   中英

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

[英]How to run java10 inside Docker of python3.7?

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

现在似乎不可能在 python3 docker 中安装 java10。

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

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

但是,如果您仍然特别需要 Java 10,您可以看看它是如何通过 AdoptOpenJDK 项目安装在 Ubuntu 映像之上的

您的 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 总和检查,以便缩短命令。

因此,我对公共 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,它具有 10 的 openjdk 发行版。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM