Files
docker-files/gitea_runner_java/Dockerfile
2026-01-23 17:09:08 +08:00

52 lines
1.8 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.

# syntax=docker/dockerfile:1
# 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 3
ARG MAVEN_VERSION=3.9.12
ARG MAVEN_URL=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz
ARG MAVEN_URL_ARCHIVE=https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz
ENV MAVEN_HOME=/opt/maven
RUN mkdir -p ${MAVEN_HOME} \
&& wget -q ${MAVEN_URL} -O /tmp/maven.tar.gz \
|| wget -q ${MAVEN_URL_ARCHIVE} -O /tmp/maven.tar.gz \
&& tar -xzf /tmp/maven.tar.gz -C ${MAVEN_HOME} --strip-components=1 \
&& rm /tmp/maven.tar.gz \
&& ln -s ${MAVEN_HOME}/bin/mvn /usr/local/bin/mvn
# 默认使用 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)"