♻️ 迁移 docker compose 并修复 runner 升级版本识别
Ubuntu System Information / show-system-info (push) Successful in 1s
Details
Ubuntu System Information / show-system-info (push) Successful in 1s
Details
This commit is contained in:
parent
9d4c4a1f73
commit
34480c16e2
|
|
@ -119,14 +119,14 @@ cd docker-runner/presets/standard-ubuntu-22/
|
||||||
#### 3. 构建并启动容器
|
#### 3. 构建并启动容器
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose build
|
docker compose build
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. 安装 Runner
|
#### 4. 安装 Runner
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose exec gitea-runner /data/setup.sh
|
docker compose exec gitea-runner /data/setup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
脚本会自动探测最新 `act_runner` 版本作为默认值,然后提示你确认架构。
|
脚本会自动探测最新 `act_runner` 版本作为默认值,然后提示你确认架构。
|
||||||
|
|
@ -134,7 +134,7 @@ docker-compose exec gitea-runner /data/setup.sh
|
||||||
#### 5. 注册 Runner
|
#### 5. 注册 Runner
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose exec gitea-runner /data/register.sh
|
docker compose exec gitea-runner /data/register.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
输入你的 Gitea 实例 URL 和注册令牌。
|
输入你的 Gitea 实例 URL 和注册令牌。
|
||||||
|
|
@ -145,10 +145,10 @@ Runner 注册后会自动启动,无需重启容器。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看容器日志
|
# 查看容器日志
|
||||||
docker-compose logs -f
|
docker compose logs -f
|
||||||
|
|
||||||
# 查看 runner 状态
|
# 查看 runner 状态
|
||||||
docker-compose exec gitea-runner /data/manage.sh status
|
docker compose exec gitea-runner /data/manage.sh status
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -178,8 +178,8 @@ environment:
|
||||||
#### 3. 构建并启动
|
#### 3. 构建并启动
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose build
|
docker compose build
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. 验证 Buildx 初始化
|
#### 4. 验证 Buildx 初始化
|
||||||
|
|
@ -190,18 +190,18 @@ docker-compose up -d
|
||||||
# ✓ arm64 support verified
|
# ✓ arm64 support verified
|
||||||
# ✓ amd64 support verified
|
# ✓ amd64 support verified
|
||||||
# ✓ Buildx configured successfully!
|
# ✓ Buildx configured successfully!
|
||||||
docker-compose logs -f
|
docker compose logs -f
|
||||||
|
|
||||||
# 进入容器验证
|
# 进入容器验证
|
||||||
docker-compose exec gitea-runner docker buildx ls
|
docker compose exec gitea-runner docker buildx ls
|
||||||
# 应该看到 gitea-multiarch builder
|
# 应该看到 gitea-multiarch builder
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 5. 安装和注册
|
#### 5. 安装和注册
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose exec gitea-runner /data/setup.sh
|
docker compose exec gitea-runner /data/setup.sh
|
||||||
docker-compose exec gitea-runner /data/register.sh
|
docker compose exec gitea-runner /data/register.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Runner 注册后会自动启动。
|
Runner 注册后会自动启动。
|
||||||
|
|
@ -216,52 +216,52 @@ Runner 注册后会自动启动。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 列出所有 runners
|
# 列出所有 runners
|
||||||
docker-compose exec gitea-runner /data/manage.sh list
|
docker compose exec gitea-runner /data/manage.sh list
|
||||||
|
|
||||||
# 查看所有 runners 状态
|
# 查看所有 runners 状态
|
||||||
docker-compose exec gitea-runner /data/manage.sh status
|
docker compose exec gitea-runner /data/manage.sh status
|
||||||
```
|
```
|
||||||
|
|
||||||
### 日志管理
|
### 日志管理
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 查看日志(最后 50 行)
|
# 查看日志(最后 50 行)
|
||||||
docker-compose exec gitea-runner /data/manage.sh logs <runner-name>
|
docker compose exec gitea-runner /data/manage.sh logs <runner-name>
|
||||||
|
|
||||||
# 指定行数
|
# 指定行数
|
||||||
docker-compose exec gitea-runner /data/manage.sh logs <runner-name> 100
|
docker compose exec gitea-runner /data/manage.sh logs <runner-name> 100
|
||||||
|
|
||||||
# 实时跟踪日志
|
# 实时跟踪日志
|
||||||
docker-compose exec gitea-runner /data/manage.sh follow <runner-name>
|
docker compose exec gitea-runner /data/manage.sh follow <runner-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Runner 控制
|
### Runner 控制
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 启动 runner
|
# 启动 runner
|
||||||
docker-compose exec gitea-runner /data/manage.sh start <runner-name>
|
docker compose exec gitea-runner /data/manage.sh start <runner-name>
|
||||||
|
|
||||||
# 停止 runner
|
# 停止 runner
|
||||||
docker-compose exec gitea-runner /data/manage.sh stop <runner-name>
|
docker compose exec gitea-runner /data/manage.sh stop <runner-name>
|
||||||
|
|
||||||
# 重启 runner
|
# 重启 runner
|
||||||
docker-compose exec gitea-runner /data/manage.sh restart <runner-name>
|
docker compose exec gitea-runner /data/manage.sh restart <runner-name>
|
||||||
|
|
||||||
# 删除 runner
|
# 删除 runner
|
||||||
docker-compose exec gitea-runner /data/manage.sh delete <runner-name>
|
docker compose exec gitea-runner /data/manage.sh delete <runner-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
### 升级 act_runner
|
### 升级 act_runner
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 自动检查最新稳定版本,下载后重启所有已注册 runners
|
# 自动检查最新稳定版本,下载后重启所有已注册 runners
|
||||||
docker-compose exec gitea-runner /data/upgrade.sh
|
docker compose exec gitea-runner /data/upgrade.sh
|
||||||
|
|
||||||
# 指定版本
|
# 指定版本
|
||||||
docker-compose exec gitea-runner /data/upgrade.sh --version 0.6.1
|
docker compose exec gitea-runner /data/upgrade.sh --version 0.6.1
|
||||||
|
|
||||||
# 仅重启指定 runner
|
# 仅重启指定 runner
|
||||||
docker-compose exec gitea-runner /data/upgrade.sh --runner <runner-name>
|
docker compose exec gitea-runner /data/upgrade.sh --runner <runner-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
`upgrade.sh` 只替换 `/data/bin/act_runner` 并重启 runner 进程,不会重新注册,也不需要重新输入 token。
|
`upgrade.sh` 只替换 `/data/bin/act_runner` 并重启 runner 进程,不会重新注册,也不需要重新输入 token。
|
||||||
|
|
@ -270,14 +270,14 @@ docker-compose exec gitea-runner /data/upgrade.sh --runner <runner-name>
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 注册新的 runner(使用不同名称)
|
# 注册新的 runner(使用不同名称)
|
||||||
docker-compose exec gitea-runner /data/register.sh
|
docker compose exec gitea-runner /data/register.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### 交互式管理
|
### 交互式管理
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 运行交互式菜单
|
# 运行交互式菜单
|
||||||
docker-compose exec gitea-runner /data/manage.sh
|
docker compose exec gitea-runner /data/manage.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -405,24 +405,24 @@ CMD ["/app"]
|
||||||
### Q1: 如何更新 Runner 版本?
|
### Q1: 如何更新 Runner 版本?
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose exec gitea-runner /data/upgrade.sh
|
docker compose exec gitea-runner /data/upgrade.sh
|
||||||
# 脚本会自动从官方目录页检测最新 act_runner 版本
|
# 脚本会自动从官方目录页检测最新 act_runner 版本
|
||||||
```
|
```
|
||||||
|
|
||||||
如需固定版本:
|
如需固定版本:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose exec gitea-runner /data/upgrade.sh --version 0.6.1
|
docker compose exec gitea-runner /data/upgrade.sh --version 0.6.1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Q2: 如何添加多个 Runners?
|
### Q2: 如何添加多个 Runners?
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 多次运行注册脚本,每次使用不同名称
|
# 多次运行注册脚本,每次使用不同名称
|
||||||
docker-compose exec gitea-runner /data/register.sh
|
docker compose exec gitea-runner /data/register.sh
|
||||||
|
|
||||||
# 查看所有 runners
|
# 查看所有 runners
|
||||||
docker-compose exec gitea-runner /data/manage.sh list
|
docker compose exec gitea-runner /data/manage.sh list
|
||||||
```
|
```
|
||||||
|
|
||||||
### Q3: 容器启动失败 "exec format error"
|
### Q3: 容器启动失败 "exec format error"
|
||||||
|
|
@ -440,36 +440,36 @@ cd docker-runner/presets/<your-preset>/
|
||||||
sed -i 's/\r$//' ../../common/*.sh
|
sed -i 's/\r$//' ../../common/*.sh
|
||||||
|
|
||||||
# 重新构建
|
# 重新构建
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker-compose build --no-cache
|
docker compose build --no-cache
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Q4: 如何完全重置?
|
### Q4: 如何完全重置?
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 停止并删除容器和卷
|
# 停止并删除容器和卷
|
||||||
docker-compose down -v
|
docker compose down -v
|
||||||
|
|
||||||
# 删除数据目录
|
# 删除数据目录
|
||||||
rm -rf runner-data
|
rm -rf runner-data
|
||||||
|
|
||||||
# 重新构建
|
# 重新构建
|
||||||
docker-compose build --no-cache
|
docker compose build --no-cache
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### Q5: 如何查看日志?
|
### Q5: 如何查看日志?
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 容器日志
|
# 容器日志
|
||||||
docker-compose logs -f
|
docker compose logs -f
|
||||||
|
|
||||||
# Runner 日志
|
# Runner 日志
|
||||||
docker-compose exec gitea-runner /data/manage.sh logs <runner-name>
|
docker compose exec gitea-runner /data/manage.sh logs <runner-name>
|
||||||
|
|
||||||
# 实时跟踪日志
|
# 实时跟踪日志
|
||||||
docker-compose exec gitea-runner /data/manage.sh follow <runner-name>
|
docker compose exec gitea-runner /data/manage.sh follow <runner-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Q6: Buildx 版 - 构建速度慢?
|
### Q6: Buildx 版 - 构建速度慢?
|
||||||
|
|
@ -508,7 +508,7 @@ platforms: ${{ github.ref == 'refs/heads/main' && 'linux/amd64,linux/arm64' || '
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 进入容器
|
# 进入容器
|
||||||
docker-compose exec gitea-runner bash
|
docker compose exec gitea-runner bash
|
||||||
|
|
||||||
# 检查 builder
|
# 检查 builder
|
||||||
docker buildx ls
|
docker buildx ls
|
||||||
|
|
@ -536,7 +536,7 @@ docker system df
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 进入容器
|
# 进入容器
|
||||||
docker-compose exec gitea-runner bash
|
docker compose exec gitea-runner bash
|
||||||
|
|
||||||
# 清理构建缓存(保留 builder)
|
# 清理构建缓存(保留 builder)
|
||||||
docker buildx prune
|
docker buildx prune
|
||||||
|
|
@ -552,10 +552,10 @@ docker buildx rm gitea-multiarch
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 停止所有容器
|
# 1. 停止所有容器
|
||||||
docker-compose down
|
docker compose down
|
||||||
|
|
||||||
# 2. 清理 Buildx(如果使用 Buildx 版)
|
# 2. 清理 Buildx(如果使用 Buildx 版)
|
||||||
docker-compose exec gitea-runner docker buildx rm gitea-multiarch
|
docker compose exec gitea-runner docker buildx rm gitea-multiarch
|
||||||
|
|
||||||
# 3. 清理未使用的镜像
|
# 3. 清理未使用的镜像
|
||||||
docker image prune -a
|
docker image prune -a
|
||||||
|
|
@ -593,7 +593,7 @@ runner-data/
|
||||||
```bash
|
```bash
|
||||||
# 1. 停止当前容器
|
# 1. 停止当前容器
|
||||||
cd docker-runner/presets/<current-preset>/
|
cd docker-runner/presets/<current-preset>/
|
||||||
docker-compose down
|
docker compose down
|
||||||
|
|
||||||
# 2. 切换到新预设
|
# 2. 切换到新预设
|
||||||
cd ../buildx-ubuntu-22/
|
cd ../buildx-ubuntu-22/
|
||||||
|
|
@ -602,8 +602,8 @@ cd ../buildx-ubuntu-22/
|
||||||
cp -r ../standard-ubuntu-22/runner-data .
|
cp -r ../standard-ubuntu-22/runner-data .
|
||||||
|
|
||||||
# 4. 启动新预设
|
# 4. 启动新预设
|
||||||
docker-compose build
|
docker compose build
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -90,9 +90,9 @@ if [ $FIXED_COUNT -gt 0 ]; then
|
||||||
echo -e "${GREEN}✓ 所有问题已自动修复!${NC}"
|
echo -e "${GREEN}✓ 所有问题已自动修复!${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo "建议执行以下命令重启容器:"
|
echo "建议执行以下命令重启容器:"
|
||||||
echo " docker-compose down"
|
echo " docker compose down"
|
||||||
echo " docker-compose build --no-cache"
|
echo " docker compose build --no-cache"
|
||||||
echo " docker-compose up -d"
|
echo " docker compose up -d"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 询问是否立即重启
|
# 询问是否立即重启
|
||||||
|
|
@ -100,13 +100,13 @@ if [ $FIXED_COUNT -gt 0 ]; then
|
||||||
echo ""
|
echo ""
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
echo "正在重启容器..."
|
echo "正在重启容器..."
|
||||||
docker-compose down
|
docker compose down
|
||||||
docker-compose build --no-cache
|
docker compose build --no-cache
|
||||||
docker-compose up -d
|
docker compose up -d
|
||||||
sleep 3
|
sleep 3
|
||||||
echo ""
|
echo ""
|
||||||
echo "容器状态:"
|
echo "容器状态:"
|
||||||
docker-compose ps
|
docker compose ps
|
||||||
echo ""
|
echo ""
|
||||||
echo "查看日志:"
|
echo "查看日志:"
|
||||||
docker logs gitea-runner --tail=30
|
docker logs gitea-runner --tail=30
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,7 @@ else
|
||||||
echo "⚠ act_runner not installed yet!"
|
echo "⚠ act_runner not installed yet!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Please run the setup script first:"
|
echo "Please run the setup script first:"
|
||||||
echo " docker-compose exec gitea-runner /data/setup.sh"
|
echo " docker compose exec gitea-runner /data/setup.sh"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Container is waiting..."
|
echo "Container is waiting..."
|
||||||
|
|
||||||
|
|
@ -243,7 +243,7 @@ if [ $RUNNER_COUNT -eq 0 ]; then
|
||||||
echo "⚠ No runners registered yet!"
|
echo "⚠ No runners registered yet!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Please run the register script to add a runner:"
|
echo "Please run the register script to add a runner:"
|
||||||
echo " docker-compose exec gitea-runner /data/register.sh"
|
echo " docker compose exec gitea-runner /data/register.sh"
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ if ! command -v act_runner &> /dev/null; then
|
||||||
echo "✗ act_runner is not installed!"
|
echo "✗ act_runner is not installed!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Please run the setup script first:"
|
echo "Please run the setup script first:"
|
||||||
echo " docker-compose exec gitea-runner /data/setup.sh"
|
echo " docker compose exec gitea-runner /data/setup.sh"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -301,10 +301,10 @@ echo " .runner: $(ls -lh .runner 2>/dev/null | awk '{print $5}' || echo 'N
|
||||||
echo " config.yaml: $(ls -lh config.yaml 2>/dev/null | awk '{print $5}' || echo 'N/A')"
|
echo " config.yaml: $(ls -lh config.yaml 2>/dev/null | awk '{print $5}' || echo 'N/A')"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Useful commands:"
|
echo "Useful commands:"
|
||||||
echo " View logs: docker-compose exec gitea-runner /data/manage.sh logs ${RUNNER_NAME}"
|
echo " View logs: docker compose exec gitea-runner /data/manage.sh logs ${RUNNER_NAME}"
|
||||||
echo " Follow logs: docker-compose exec gitea-runner /data/manage.sh follow ${RUNNER_NAME}"
|
echo " Follow logs: docker compose exec gitea-runner /data/manage.sh follow ${RUNNER_NAME}"
|
||||||
echo " Check status: docker-compose exec gitea-runner /data/manage.sh status"
|
echo " Check status: docker compose exec gitea-runner /data/manage.sh status"
|
||||||
echo " Restart: docker-compose exec gitea-runner /data/manage.sh restart ${RUNNER_NAME}"
|
echo " Restart: docker compose exec gitea-runner /data/manage.sh restart ${RUNNER_NAME}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 显示最近的日志
|
# 显示最近的日志
|
||||||
|
|
@ -327,6 +327,6 @@ if [ -f "/var/log/supervisor/runner-${RUNNER_NAME}.err.log" ]; then
|
||||||
echo "$ERR_CONTENT"
|
echo "$ERR_CONTENT"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Check full error log with:"
|
echo "Check full error log with:"
|
||||||
echo " docker-compose exec gitea-runner cat /var/log/supervisor/runner-${RUNNER_NAME}.err.log"
|
echo " docker compose exec gitea-runner cat /var/log/supervisor/runner-${RUNNER_NAME}.err.log"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ if curl -L "$DOWNLOAD_URL" -o "$INSTALL_PATH"; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "Next steps:"
|
echo "Next steps:"
|
||||||
echo "1. Register the runner:"
|
echo "1. Register the runner:"
|
||||||
echo " docker-compose exec gitea-runner /data/register.sh"
|
echo " docker compose exec gitea-runner /data/register.sh"
|
||||||
echo ""
|
echo ""
|
||||||
echo "2. Start using the runner after registration."
|
echo "2. Start using the runner after registration."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ fail() {
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_version_number() {
|
extract_version_number() {
|
||||||
sed -nE 's/.*version[[:space:]]+([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' | head -n 1
|
sed -nE 's/.*version[[:space:]]+v?([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' | head -n 1
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_versions_from_listing() {
|
extract_versions_from_listing() {
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,17 @@ EOF
|
||||||
"pick_latest_version should return the highest semantic version"
|
"pick_latest_version should return the highest semantic version"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_extract_version_number_accepts_v_prefix() {
|
||||||
|
local actual
|
||||||
|
actual=$(extract_version_number <<'EOF'
|
||||||
|
act_runner version v0.6.1
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_eq "0.6.1" "${actual}" \
|
||||||
|
"extract_version_number should accept version output with a leading v"
|
||||||
|
}
|
||||||
|
|
||||||
fake_latest_version() {
|
fake_latest_version() {
|
||||||
echo "0.6.2"
|
echo "0.6.2"
|
||||||
}
|
}
|
||||||
|
|
@ -81,6 +92,7 @@ test_resolve_latest_version_or_fallback_uses_fallback() {
|
||||||
|
|
||||||
test_extract_versions_from_listing
|
test_extract_versions_from_listing
|
||||||
test_pick_latest_version
|
test_pick_latest_version
|
||||||
|
test_extract_version_number_accepts_v_prefix
|
||||||
test_resolve_latest_version_or_fallback_prefers_latest
|
test_resolve_latest_version_or_fallback_prefers_latest
|
||||||
test_resolve_latest_version_or_fallback_uses_fallback
|
test_resolve_latest_version_or_fallback_uses_fallback
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue