# Java Runtime 多版本 Java 运行时环境,用于运行各类 Java 服务。 ## 基础镜像 - `debian:latest` ## 包含环境 | 组件 | 版本 | |------|------| | JRE | 8, 21 (Eclipse Temurin) | | 时区 | Asia/Shanghai | | 字符集 | UTF-8 | ## JRE 路径 | 版本 | 路径 | |------|------| | JRE 8 | `/usr/lib/jvm/temurin-8-jre-amd64` | | JRE 21 | `/usr/lib/jvm/temurin-21-jre-amd64` | 默认使用 JRE 21。 ## 预装依赖 - **网络工具**: curl, openssh-client - **进程工具**: procps, net-tools, iproute2 - **字体支持**: 文泉驿微米黑、文泉驿正黑、文鼎楷体、文鼎宋体 - **图形库**: libjpeg, libpng, libfreetype, fontconfig - **数据库客户端**: libmariadb3, libpq5 ## 构建 ```bash ./rebuild.sh java_runtime ``` ## 使用 ### 运行 JAR 应用 ```bash # 使用默认 JRE 21 docker run --rm -v /path/to/app:/app timi/java_runtime:latest java -jar /app/app.jar # 使用 JRE 8 docker run --rm -e JAVA_HOME=/usr/lib/jvm/temurin-8-jre-amd64 \ -v /path/to/app:/app timi/java_runtime:latest \ /usr/lib/jvm/temurin-8-jre-amd64/bin/java -jar /app/app.jar ``` ### 作为基础镜像 ```dockerfile FROM timi/java_runtime:latest COPY target/app.jar /app/app.jar ENTRYPOINT ["java", "-jar", "/app/app.jar"] ``` ### Docker Compose 示例 ```yaml services: myapp: image: timi/java_runtime:latest volumes: - ./app.jar:/app/app.jar command: java -jar /app/app.jar environment: - TZ=Asia/Shanghai ``` ## 环境变量 | 变量 | 默认值 | |------|--------| | `JAVA_HOME` | `/usr/lib/jvm/temurin-21-jre-amd64` | | `JAVA8_HOME` | `/usr/lib/jvm/temurin-8-jre-amd64` | | `JAVA21_HOME` | `/usr/lib/jvm/temurin-21-jre-amd64` | | `TZ` | `Asia/Shanghai` | | `LANG` | `C.UTF-8` |