0

这是我的 Dockerfile

FROM ubuntu:20.04

# Install java 8 with apt-get
RUN apt-get update -qq && apt-get install -yqq openjdk-8-jdk

# Install java 11 with sdkman
RUN apt-get install -yqq curl unzip zip
RUN curl -s "https://get.sdkman.io" | bash
RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install java 11.0.12-open"

# Print java version
RUN java -version

RUN java -versionjava 8

在交互模式 ( docker run --rm -it <image-id>) 中,它显示java 11

RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; java -version"在 Dockerfile 中使用会提供java 11

为什么 ?什么可以解释这些行为之间的差异?用 apt-get 安装 java 11 不会出现这个问题,默认的 java 版本无论如何都会变成 11。

4

0 回答 0