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>
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/AGENTS.md
|
||||
/CLAUDE.md
|
||||
/.claude
|
||||
56
README.md
56
README.md
@ -1,3 +1,57 @@
|
||||
# docker-files
|
||||
|
||||
镜像 Dockerfile
|
||||
Gitea Action Runner Docker 镜像集合
|
||||
|
||||
## 镜像列表
|
||||
|
||||
### gitea_runner_base
|
||||
|
||||
基于 `gitea/act_runner` 的基础镜像,包含常用构建工具:
|
||||
|
||||
- 版本控制: git, git-lfs
|
||||
- 网络工具: curl, wget, openssl
|
||||
- 压缩工具: tar, gzip, bzip2, xz, zip, unzip
|
||||
- 构建工具: make, bash, GNU 工具链
|
||||
- 其他: jq, tree
|
||||
|
||||
```bash
|
||||
docker build -t gitea_runner_base ./gitea_runner_base
|
||||
```
|
||||
|
||||
### gitea_runner_java
|
||||
|
||||
基于 `gitea_runner_base` 的 Java 开发镜像,包含:
|
||||
|
||||
- JDK 7 (Azul Zulu)
|
||||
- JDK 8, 11, 17, 21 (OpenJDK)
|
||||
- Maven 3.9.9
|
||||
|
||||
```bash
|
||||
docker build -t gitea_runner_java ./gitea_runner_java
|
||||
```
|
||||
|
||||
**切换 JDK 版本:**
|
||||
|
||||
```bash
|
||||
# 在容器内或 CI 脚本中
|
||||
source use-java 8 # 切换到 JDK 8
|
||||
source use-java 17 # 切换到 JDK 17
|
||||
```
|
||||
|
||||
**直接指定 JAVA_HOME:**
|
||||
|
||||
```yaml
|
||||
# Gitea Action workflow 示例
|
||||
env:
|
||||
JAVA_HOME: /usr/lib/jvm/java-11-openjdk
|
||||
```
|
||||
|
||||
## 构建顺序
|
||||
|
||||
```bash
|
||||
# 1. 先构建基础镜像
|
||||
docker build -t gitea_runner_base ./gitea_runner_base
|
||||
|
||||
# 2. 再构建语言环境镜像
|
||||
docker build -t gitea_runner_java ./gitea_runner_java
|
||||
```
|
||||
38
gitea_runner_base/Dockerfile
Normal file
38
gitea_runner_base/Dockerfile
Normal file
@ -0,0 +1,38 @@
|
||||
# Gitea Action Runner Base Image
|
||||
# 基于 gitea/act_runner 添加常用构建工具,不含具体语言环境
|
||||
|
||||
FROM gitea/act_runner:latest
|
||||
|
||||
LABEL maintainer="www.imyeyu.com"
|
||||
LABEL description="Gitea Action Runner with basic build tools"
|
||||
|
||||
# 安装基本构建工具
|
||||
# act_runner 基于 Alpine Linux
|
||||
RUN apk update && apk add --no-cache \
|
||||
# 版本控制
|
||||
git \
|
||||
git-lfs \
|
||||
# 网络工具
|
||||
curl \
|
||||
wget \
|
||||
ca-certificates \
|
||||
openssl \
|
||||
# 压缩/解压工具
|
||||
tar \
|
||||
gzip \
|
||||
bzip2 \
|
||||
xz \
|
||||
zip \
|
||||
unzip \
|
||||
# 基本构建工具
|
||||
make \
|
||||
bash \
|
||||
coreutils \
|
||||
findutils \
|
||||
grep \
|
||||
sed \
|
||||
gawk \
|
||||
# 其他常用工具
|
||||
jq \
|
||||
tree \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
65
gitea_runner_java/Dockerfile
Normal file
65
gitea_runner_java/Dockerfile
Normal file
@ -0,0 +1,65 @@
|
||||
# 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)"
|
||||
Reference in New Issue
Block a user