Dockerfile from python:3.6-slim add jdk8

微笑、不失礼 提交于 2021-01-29 10:30:44

问题


someone could help me, i'm starting from follow docker file

FROM python:3.6-slim
RUN apt-get update
RUN apt-get install -y apt-utils build-essential gcc

And i would add an openjdk 8

thanks


回答1:


You can download java tar.gz, unpack it and set environment variable. Below a sample of implementation in Dockerfile:

FROM python:3.6-slim

RUN apt-get update
RUN apt-get install -y apt-utils build-essential gcc

ENV JAVA_FOLDER java-se-8u41-ri

ENV JVM_ROOT /usr/lib/jvm

ENV JAVA_PKG_NAME openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
ENV JAVA_TAR_GZ_URL https://download.java.net/openjdk/jdk8u41/ri/$JAVA_PKG_NAME

RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*    && \
    apt-get clean                                                               && \
    apt-get autoremove                                                          && \
    echo Downloading $JAVA_TAR_GZ_URL                                           && \
    wget -q $JAVA_TAR_GZ_URL                                                    && \
    tar -xvf $JAVA_PKG_NAME                                                     && \
    rm $JAVA_PKG_NAME                                                           && \
    mkdir -p /usr/lib/jvm                                                       && \
    mv ./$JAVA_FOLDER $JVM_ROOT                                                 && \
    update-alternatives --install /usr/bin/java java $JVM_ROOT/$JAVA_FOLDER/bin/java 1        && \
    update-alternatives --install /usr/bin/javac javac $JVM_ROOT/$JAVA_FOLDER/bin/javac 1     && \
    java -version



回答2:


In cases where you need python and java installed in a same image (i.e. pyspark) I find it easier to extend the openjdk images with python than the other way around for example:

FROM openjdk:8-jdk-slim-buster

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        python3.7 \
        python3-pip \
        python3.7-dev \
        python3-setuptools \
        python3-wheel

Build the image: docker build --rm -t so:64051125 .

Note: the version of python3 available through apt on debian:buster-slim is 3.7, if you really need 3.6 could try building it from source.



来源:https://stackoverflow.com/questions/64051125/dockerfile-from-python3-6-slim-add-jdk8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!