Files
docker-files/gitea_runner_java/Dockerfile
T
2026-05-09 17:51:38 +08:00

46 lines
1.4 KiB
Docker

# Gitea Action Runner Java Image
# 基于 gitea_runner_base 添加多版本 JDK 和 Maven
FROM timi/gitea_runner_base:latest
LABEL maintainer="www.imyeyu.com"
LABEL description="Gitea Action Runner with JDK 8/21/25 and Maven 3"
# JDK 安装目录
ENV JAVA_BASE=/usr/lib/jvm
# 安装 Alpine 仓库中的 OpenJDK 版本(仅保留 8、21 和 25)
RUN apk add --no-cache \
openjdk8 \
openjdk21 \
openjdk25 \
maven
# Maven
ENV MAVEN_HOME=/usr/share/java/maven-3
# 默认使用 JDK 25
ENV JAVA_HOME=${JAVA_BASE}/java-25-openjdk
ENV PATH="${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}"
# 创建版本切换脚本
RUN cat <<'EOF' > /usr/local/bin/use-java
#!/bin/bash
case "$1" in
8) export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk ;;
21) export JAVA_HOME=/usr/lib/jvm/java-21-openjdk ;;
25) export JAVA_HOME=/usr/lib/jvm/java-25-openjdk ;;
*) echo "Usage: source use-java [8|21|25]"; return 1 ;;
esac
export PATH="${JAVA_HOME}/bin:${PATH}"
echo "Switched to Java $1: $(java -version 2>&1 | head -1)"
EOF
RUN chmod +x /usr/local/bin/use-java
# 验证安装
RUN echo "=== Installed JDK versions ===" \
&& echo "JDK 8: $(/usr/lib/jvm/java-1.8-openjdk/bin/java -version 2>&1 | head -1)" \
&& echo "JDK 21: $(/usr/lib/jvm/java-21-openjdk/bin/java -version 2>&1 | head -1)" \
&& echo "JDK 25: $(/usr/lib/jvm/java-25-openjdk/bin/java -version 2>&1 | head -1)" \
&& echo "Maven: $(mvn -version 2>&1 | head -1)"