Files
docker-files/gitea_runner_java/Dockerfile
2026-04-08 17:42:58 +08:00

43 lines
1.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 and Maven 3"
# JDK 安装目录
ENV JAVA_BASE=/usr/lib/jvm
# 安装 Alpine 仓库中的 OpenJDK 版本(仅保留 8 和 21
RUN apk add --no-cache \
openjdk8 \
openjdk21 \
maven
# Maven
ENV MAVEN_HOME=/usr/share/java/maven-3
# 默认使用 JDK 21
ENV JAVA_HOME=${JAVA_BASE}/java-21-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 ;;
*) echo "Usage: source use-java [8|21]"; 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 "Maven: $(mvn -version 2>&1 | head -1)"