在AdoptOpenJDK维护的镜像中,“adoptopenjdk alpine”和“alpine-slim”都是基于Alpine Linux发行版的Java运行时镜像。它们之间的主要区别在于大小和功能。
“adoptopenjdk alpine”是一个较大的镜像,其中包含了完整的Alpine Linux操作系统以及Java运行时环境。这使得它可以支持更广泛的应用程序和配置选项,但也意味着它需要更多的存储空间。
“alpine-slim”是一个更小的镜像,它只包含了必要的组件以运行Java应用程序,而不包括完整的Alpine Linux操作系统。这使得它更适合于容器化的环境和资源受限的设备,但可能需要一些额外的设置来支持某些应用程序。
以下是两个镜像的示例Dockerfile:
使用“adoptopenjdk alpine”:
FROM adoptopenjdk:11-jdk-hotspot-alpine
RUN apk --no-cache add curl
CMD ["java", "-version"]
使用“alpine-slim”:
FROM adoptopenjdk:11-jre-hotspot-bionic as builder
WORKDIR application
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
RUN cp -r dependencies/ ../dependencies/
RUN cp -r snapshot-dependencies/ ../snapshot-dependencies/
RUN cp -r spring-boot-loader/ ../spring-boot-loader/
RUN cp -r application/ ../application/
FROM adoptopenjdk:11-jre-hotspot-alpine
WORKDIR application
COPY --from=builder application/ ./
CMD ["java", "org.springframework.boot.loader.JarLauncher"]