110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
# docker-files
|
||
|
||
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_node
|
||
|
||
基于 `gitea_runner_base` 的 Node.js 开发镜像,包含:
|
||
|
||
- Node.js 18, 20, 22
|
||
- npm, yarn, pnpm
|
||
|
||
```bash
|
||
docker build -t gitea_runner_node ./gitea_runner_node
|
||
```
|
||
|
||
### gitea_runner_java
|
||
|
||
基于 `gitea_runner_base` 的 Java 开发镜像,包含:
|
||
|
||
- JDK 8, 21, 25 (OpenJDK)
|
||
- Maven (Alpine package)
|
||
|
||
```bash
|
||
docker build -t gitea_runner_java ./gitea_runner_java
|
||
```
|
||
|
||
**切换 JDK 版本:**
|
||
|
||
```bash
|
||
# 在容器内或 CI 脚本中
|
||
source use-java 8 # 切换到 JDK 8
|
||
source use-java 21 # 切换到 JDK 21
|
||
source use-java 25 # 切换到 JDK 25
|
||
```
|
||
|
||
**直接指定 JAVA_HOME:**
|
||
|
||
```yaml
|
||
# Gitea Action workflow 示例
|
||
env:
|
||
JAVA_HOME: /usr/lib/jvm/java-1.8-openjdk
|
||
```
|
||
|
||
### gitea_runner_python
|
||
|
||
基于 `gitea_runner_base` 的 Python 开发镜像,包含:
|
||
|
||
- Python 3、pip 和 virtualenv
|
||
- Python 原生扩展常用编译工具(C/C++、Rust、OpenSSL、libffi)
|
||
- 基础镜像中的 Node.js、Git、Bash、SSH 和 `sshpass`
|
||
|
||
Python 版本由基础镜像对应的 Alpine 仓库提供。job 容器直接使用镜像内的 Python,不需要 `actions/setup-python`。
|
||
|
||
```bash
|
||
./rebuild.sh gitea_runner_base latest
|
||
./rebuild.sh gitea_runner_python latest
|
||
```
|
||
|
||
### gitea_runner_electron
|
||
|
||
基于 `electronuserland/builder:wine` 的 Electron 三平台打包镜像,包含:
|
||
|
||
- Node.js, npm, pnpm, yarn
|
||
- Wine,用于 Windows NSIS 打包
|
||
- 7zip, zip, unzip 等压缩工具
|
||
- `build-electron-release` 三平台打包脚本
|
||
|
||
默认打包目标:
|
||
|
||
- Linux: AppImage x64
|
||
- Windows: NSIS x64
|
||
- macOS: zip x64 + arm64
|
||
|
||
macOS 只生成 zip,不处理 dmg、签名和公证。
|
||
|
||
```bash
|
||
docker build -t gitea_runner_electron ./gitea_runner_electron
|
||
```
|
||
|
||
## 构建顺序
|
||
|
||
```bash
|
||
# 1. 先构建基础镜像
|
||
docker build -t gitea_runner_base ./gitea_runner_base
|
||
|
||
# 2. 再构建语言环境镜像
|
||
docker build -t gitea_runner_node ./gitea_runner_node
|
||
docker build -t gitea_runner_java ./gitea_runner_java
|
||
docker build -t gitea_runner_python ./gitea_runner_python
|
||
|
||
# 3. Electron 镜像基于官方 Wine 镜像,可独立构建
|
||
docker build -t gitea_runner_electron ./gitea_runner_electron
|
||
```
|