Files
docker-files/java_runtime/README.md
2026-01-22 16:17:14 +08:00

86 lines
1.7 KiB
Markdown

# 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` |