♻️ 迁移 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. 构建并启动容器
|
||||
|
||||
```bash
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
#### 4. 安装 Runner
|
||||
|
||||
```bash
|
||||
docker-compose exec gitea-runner /data/setup.sh
|
||||
docker compose exec gitea-runner /data/setup.sh
|
||||
```
|
||||
|
||||
脚本会自动探测最新 `act_runner` 版本作为默认值,然后提示你确认架构。
|
||||
|
|
@ -134,7 +134,7 @@ docker-compose exec gitea-runner /data/setup.sh
|
|||
#### 5. 注册 Runner
|
||||
|
||||
```bash
|
||||
docker-compose exec gitea-runner /data/register.sh
|
||||
docker compose exec gitea-runner /data/register.sh
|
||||
```
|
||||
|
||||
输入你的 Gitea 实例 URL 和注册令牌。
|
||||
|
|
@ -145,10 +145,10 @@ Runner 注册后会自动启动,无需重启容器。
|
|||
|
||||
```bash
|
||||
# 查看容器日志
|
||||
docker-compose logs -f
|
||||
docker compose logs -f
|
||||
|
||||
# 查看 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. 构建并启动
|
||||
|
||||
```bash
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
#### 4. 验证 Buildx 初始化
|
||||
|
|
@ -190,18 +190,18 @@ docker-compose up -d
|
|||
# ✓ arm64 support verified
|
||||
# ✓ amd64 support verified
|
||||
# ✓ 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
|
||||
```
|
||||
|
||||
#### 5. 安装和注册
|
||||
|
||||
```bash
|
||||
docker-compose exec gitea-runner /data/setup.sh
|
||||
docker-compose exec gitea-runner /data/register.sh
|
||||
docker compose exec gitea-runner /data/setup.sh
|
||||
docker compose exec gitea-runner /data/register.sh
|
||||
```
|
||||
|
||||
Runner 注册后会自动启动。
|
||||
|
|
@ -216,52 +216,52 @@ Runner 注册后会自动启动。
|
|||
|
||||
```bash
|
||||
# 列出所有 runners
|
||||
docker-compose exec gitea-runner /data/manage.sh list
|
||||
docker compose exec gitea-runner /data/manage.sh list
|
||||
|
||||
# 查看所有 runners 状态
|
||||
docker-compose exec gitea-runner /data/manage.sh status
|
||||
docker compose exec gitea-runner /data/manage.sh status
|
||||
```
|
||||
|
||||
### 日志管理
|
||||
|
||||
```bash
|
||||
# 查看日志(最后 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 控制
|
||||
|
||||
```bash
|
||||
# 启动 runner
|
||||
docker-compose exec gitea-runner /data/manage.sh start <runner-name>
|
||||
docker compose exec gitea-runner /data/manage.sh start <runner-name>
|
||||
|
||||
# 停止 runner
|
||||
docker-compose exec gitea-runner /data/manage.sh stop <runner-name>
|
||||
docker compose exec gitea-runner /data/manage.sh stop <runner-name>
|
||||
|
||||
# 重启 runner
|
||||
docker-compose exec gitea-runner /data/manage.sh restart <runner-name>
|
||||
docker compose exec gitea-runner /data/manage.sh restart <runner-name>
|
||||
|
||||
# 删除 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
|
||||
|
||||
```bash
|
||||
# 自动检查最新稳定版本,下载后重启所有已注册 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
|
||||
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。
|
||||
|
|
@ -270,14 +270,14 @@ docker-compose exec gitea-runner /data/upgrade.sh --runner <runner-name>
|
|||
|
||||
```bash
|
||||
# 注册新的 runner(使用不同名称)
|
||||
docker-compose exec gitea-runner /data/register.sh
|
||||
docker compose exec gitea-runner /data/register.sh
|
||||
```
|
||||
|
||||
### 交互式管理
|
||||
|
||||
```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 版本?
|
||||
|
||||
```bash
|
||||
docker-compose exec gitea-runner /data/upgrade.sh
|
||||
docker compose exec gitea-runner /data/upgrade.sh
|
||||
# 脚本会自动从官方目录页检测最新 act_runner 版本
|
||||
```
|
||||
|
||||
如需固定版本:
|
||||
|
||||
```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?
|
||||
|
||||
```bash
|
||||
# 多次运行注册脚本,每次使用不同名称
|
||||
docker-compose exec gitea-runner /data/register.sh
|
||||
docker compose exec gitea-runner /data/register.sh
|
||||
|
||||
# 查看所有 runners
|
||||
docker-compose exec gitea-runner /data/manage.sh list
|
||||
docker compose exec gitea-runner /data/manage.sh list
|
||||
```
|
||||
|
||||
### Q3: 容器启动失败 "exec format error"
|
||||
|
|
@ -440,36 +440,36 @@ cd docker-runner/presets/<your-preset>/
|
|||
sed -i 's/\r$//' ../../common/*.sh
|
||||
|
||||
# 重新构建
|
||||
docker-compose down
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
docker compose down
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Q4: 如何完全重置?
|
||||
|
||||
```bash
|
||||
# 停止并删除容器和卷
|
||||
docker-compose down -v
|
||||
docker compose down -v
|
||||
|
||||
# 删除数据目录
|
||||
rm -rf runner-data
|
||||
|
||||
# 重新构建
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Q5: 如何查看日志?
|
||||
|
||||
```bash
|
||||
# 容器日志
|
||||
docker-compose logs -f
|
||||
docker compose logs -f
|
||||
|
||||
# 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 版 - 构建速度慢?
|
||||
|
|
@ -508,7 +508,7 @@ platforms: ${{ github.ref == 'refs/heads/main' && 'linux/amd64,linux/arm64' || '
|
|||
|
||||
```bash
|
||||
# 进入容器
|
||||
docker-compose exec gitea-runner bash
|
||||
docker compose exec gitea-runner bash
|
||||
|
||||
# 检查 builder
|
||||
docker buildx ls
|
||||
|
|
@ -536,7 +536,7 @@ docker system df
|
|||
|
||||
```bash
|
||||
# 进入容器
|
||||
docker-compose exec gitea-runner bash
|
||||
docker compose exec gitea-runner bash
|
||||
|
||||
# 清理构建缓存(保留 builder)
|
||||
docker buildx prune
|
||||
|
|
@ -552,10 +552,10 @@ docker buildx rm gitea-multiarch
|
|||
|
||||
```bash
|
||||
# 1. 停止所有容器
|
||||
docker-compose down
|
||||
docker compose down
|
||||
|
||||
# 2. 清理 Buildx(如果使用 Buildx 版)
|
||||
docker-compose exec gitea-runner docker buildx rm gitea-multiarch
|
||||
docker compose exec gitea-runner docker buildx rm gitea-multiarch
|
||||
|
||||
# 3. 清理未使用的镜像
|
||||
docker image prune -a
|
||||
|
|
@ -593,7 +593,7 @@ runner-data/
|
|||
```bash
|
||||
# 1. 停止当前容器
|
||||
cd docker-runner/presets/<current-preset>/
|
||||
docker-compose down
|
||||
docker compose down
|
||||
|
||||
# 2. 切换到新预设
|
||||
cd ../buildx-ubuntu-22/
|
||||
|
|
@ -602,8 +602,8 @@ cd ../buildx-ubuntu-22/
|
|||
cp -r ../standard-ubuntu-22/runner-data .
|
||||
|
||||
# 4. 启动新预设
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -90,9 +90,9 @@ if [ $FIXED_COUNT -gt 0 ]; then
|
|||
echo -e "${GREEN}✓ 所有问题已自动修复!${NC}"
|
||||
echo ""
|
||||
echo "建议执行以下命令重启容器:"
|
||||
echo " docker-compose down"
|
||||
echo " docker-compose build --no-cache"
|
||||
echo " docker-compose up -d"
|
||||
echo " docker compose down"
|
||||
echo " docker compose build --no-cache"
|
||||
echo " docker compose up -d"
|
||||
echo ""
|
||||
|
||||
# 询问是否立即重启
|
||||
|
|
@ -100,13 +100,13 @@ if [ $FIXED_COUNT -gt 0 ]; then
|
|||
echo ""
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "正在重启容器..."
|
||||
docker-compose down
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
docker compose down
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
sleep 3
|
||||
echo ""
|
||||
echo "容器状态:"
|
||||
docker-compose ps
|
||||
docker compose ps
|
||||
echo ""
|
||||
echo "查看日志:"
|
||||
docker logs gitea-runner --tail=30
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ else
|
|||
echo "⚠ act_runner not installed yet!"
|
||||
echo ""
|
||||
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 "Container is waiting..."
|
||||
|
||||
|
|
@ -243,7 +243,7 @@ if [ $RUNNER_COUNT -eq 0 ]; then
|
|||
echo "⚠ No runners registered yet!"
|
||||
echo ""
|
||||
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 ""
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ if ! command -v act_runner &> /dev/null; then
|
|||
echo "✗ act_runner is not installed!"
|
||||
echo ""
|
||||
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
|
||||
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 ""
|
||||
echo "Useful commands:"
|
||||
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 " 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 " 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 " 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 ""
|
||||
|
||||
# 显示最近的日志
|
||||
|
|
@ -327,6 +327,6 @@ if [ -f "/var/log/supervisor/runner-${RUNNER_NAME}.err.log" ]; then
|
|||
echo "$ERR_CONTENT"
|
||||
echo ""
|
||||
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
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ if curl -L "$DOWNLOAD_URL" -o "$INSTALL_PATH"; then
|
|||
echo ""
|
||||
echo "Next steps:"
|
||||
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 "2. Start using the runner after registration."
|
||||
echo ""
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ fail() {
|
|||
}
|
||||
|
||||
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() {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,17 @@ EOF
|
|||
"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() {
|
||||
echo "0.6.2"
|
||||
}
|
||||
|
|
@ -81,6 +92,7 @@ test_resolve_latest_version_or_fallback_uses_fallback() {
|
|||
|
||||
test_extract_versions_from_listing
|
||||
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_uses_fallback
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue