Files
docker-files/gitea_runner_java/Dockerfile
Timi 18d19635cf feat: add Gitea Action Runner base and Java images
- gitea_runner_base: base image with common build tools (git, curl, wget, tar, etc.)
- gitea_runner_java: Java image with JDK 7/8/11/17/21 and Maven 3.9.9
- Update README with build instructions and usage examples

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:27:36 +08:00

66 lines
2.5 KiB
Docker

# Gitea Action Runner Java Image
# 基于 gitea_runner_base 添加多版本 JDK 和 Maven
FROM gitea_runner_base:latest
LABEL maintainer="www.imyeyu.com"
LABEL description="Gitea Action Runner with JDK 7/8/11/17/21 and Maven 3"
# JDK 安装目录
ENV JAVA_BASE=/usr/lib/jvm
# 安装 Alpine 仓库中的 OpenJDK 版本
RUN apk add --no-cache \
openjdk8 \
openjdk11 \
openjdk17 \
openjdk21
# JDK 7 - 从 Azul Zulu 下载 (Alpine musl 版本)
ARG ZULU7_VERSION=7.56.0.11-ca-jdk7.0.352
ARG ZULU7_URL=https://cdn.azul.com/zulu/bin/zulu${ZULU7_VERSION}-linux_musl_x64.tar.gz
RUN mkdir -p ${JAVA_BASE} \
&& wget -q ${ZULU7_URL} -O /tmp/zulu7.tar.gz \
&& tar -xzf /tmp/zulu7.tar.gz -C ${JAVA_BASE} \
&& mv ${JAVA_BASE}/zulu${ZULU7_VERSION}-linux_musl_x64 ${JAVA_BASE}/java-7-zulu \
&& rm /tmp/zulu7.tar.gz
# Maven 3
ARG MAVEN_VERSION=3.9.9
ARG MAVEN_URL=https://dlcdn.apache.org/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 \
&& 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 17
ENV JAVA_HOME=${JAVA_BASE}/java-17-openjdk
ENV PATH="${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}"
# 创建版本切换脚本
RUN cat > /usr/local/bin/use-java << 'EOF'
#!/bin/bash
case "$1" in
7) export JAVA_HOME=/usr/lib/jvm/java-7-zulu ;;
8) export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk ;;
11) export JAVA_HOME=/usr/lib/jvm/java-11-openjdk ;;
17) export JAVA_HOME=/usr/lib/jvm/java-17-openjdk ;;
21) export JAVA_HOME=/usr/lib/jvm/java-21-openjdk ;;
*) echo "Usage: source use-java [7|8|11|17|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 7: $(/usr/lib/jvm/java-7-zulu/bin/java -version 2>&1 | head -1)" \
&& echo "JDK 8: $(/usr/lib/jvm/java-1.8-openjdk/bin/java -version 2>&1 | head -1)" \
&& echo "JDK 11: $(/usr/lib/jvm/java-11-openjdk/bin/java -version 2>&1 | head -1)" \
&& echo "JDK 17: $(/usr/lib/jvm/java-17-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)"