尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

阿里云 Windows 服务器部署 GitLab Runner 指南

阿里云 Windows 服务器部署 GitLab Runner 指南
📅 发布时间:2026/6/26 7:00:51

适用场景:在阿里云 Windows ECS 上部署 GitLab Runner,用于 GitLab CI/CD 编译 WPF / .NET 项目。


1. 部署目标

本次部署的目标是让阿里云 Windows 服务器作为 GitLab Runner,自动执行 GitLab CI/CD 流水线。

你的项目 CI 大致会做这些事情:

GitLab 推送代码 ↓ GitLab Runner 接收任务 ↓ 拉取仓库1 ↓ 拉取仓库2 ↓ 执行 dotnet restore / dotnet publish ↓ 生成 zip 更新包 ↓ 上传更新包 ↓ 调用 MES 接口登记版本

因为项目是 WPF / Windows 桌面程序,所以 Runner 必须使用 Windows 环境,推荐使用shell executor,不要使用 Linux Docker。


2. 服务器配置要求

2.1 你的服务器配置

你的阿里云服务器配置为:

系统:Windows CPU:4 核 内存:8 GB 磁盘:100 GB 用途:部署 GitLab Runner 服务

这个配置可以满足当前项目的 CI 编译需求。

2.2 推荐配置

Windows Server 2019 / 2022 / Windows 11 CPU:4 核以上 内存:8 GB 以上 磁盘:100 GB 以上

如果后续多个项目同时跑流水线,建议提升到:

CPU:8 核以上 内存:16 GB 以上

3. 服务器需要安装的软件

需要安装 4 类软件:

1. Git for Windows 2. .NET 8 SDK 3. Visual Studio Build Tools 4. GitLab Runner for Windows

其中:

软件作用
Git for Windows让 Runner 可以执行git clone、git fetch、git checkout
.NET 8 SDK编译 .NET 8 项目
Visual Studio Build Tools提供 MSBuild、WPF 编译工具、Windows SDK
GitLab Runner接收 GitLab CI/CD 任务并执行脚本

4. 下载内容说明

4.1 Git for Windows

下载:

Git for Windows x64 Setup

不要下载:

PortableGit ARM64 Source Code

安装路径保持默认即可:

C:\Program Files\Git

安装时推荐保持默认选项,尤其注意 PATH 选项应选择:

Git from the command line and also from 3rd-party software

安装后验证:

git --version

正常示例:

git version 2.54.0.windows.1

4.2 .NET 8 SDK

下载:

.NET 8 SDK Windows x64 Installer

注意必须是SDK,不是 Runtime。

不要只下载:

.NET Runtime .NET Desktop Runtime ASP.NET Core Runtime

安装后验证:

dotnet --list-sdks

正常示例:

8.0.422 [C:\Program Files\dotnet\sdk] 10.0.301 [C:\Program Files\dotnet\sdk]

只要能看到8.0.xxx,说明 .NET 8 SDK 已经可用。


4.3 Visual Studio Build Tools

在 Visual Studio 下载页面中,应该选择:

Visual Studio 2026 生成工具

也就是英文中的:

Build Tools for Visual Studio

不要选:

Visual Studio 2026 远程工具 Visual Studio Community Visual Studio Professional Visual Studio Enterprise

Runner 服务器只负责编译,不需要完整 IDE。

安装路径

Build Tools 安装路径可以保持默认:

C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools

不用改路径。默认路径最稳定,MSBuild、vswhere 等工具都能自动识别。

工作负载勾选

必须勾选:

.NET 桌面生成工具

英文一般是:

.NET desktop build tools

这个工作负载会安装 WPF 编译所需的组件。

单个组件建议

建议保留:

.NET SDK .NET Framework 4.8 开发工具 MSBuild 工具 Windows SDK

这些组件对 WPF / Windows 桌面项目比较关键。

你看到的这些选项可以保留:

.NET Framework 4.8 开发工具 .NET SDK Windows Communication Foundation 生成工具 测试工具核心功能 - 生成工具 ClickOnce 生成工具

其中真正必要的是:

.NET SDK .NET Framework 4.8 开发工具 .NET 桌面生成工具 MSBuild Windows SDK

如果磁盘空间够,保持默认勾选即可,避免以后因为缺组件重新安装。

验证 MSBuild

安装完成后,如果直接执行:

msbuild -version

提示:

'msbuild' 不是内部或外部命令

不一定代表安装失败,可能只是 PATH 没有刷新。

可以用完整路径验证:

"C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\MSBuild.exe" -version

正常示例:

MSBuild 版本 18.7.1

如果完整路径可以运行,说明 Build Tools 已安装成功。


4.4 GitLab Runner for Windows

下载:

gitlab-runner-windows-amd64.exe

你的阿里云 Windows ECS 是 Intel / AMD 64 位架构,所以选amd64。

不要下载:

gitlab-runner-windows-arm64.exe gitlab-runner-windows-386.exe linux-amd64 darwin-amd64

双击gitlab-runner-windows-amd64.exe会一闪而过,这是正常的。它不是图形界面安装程序,而是命令行程序,必须在 CMD / PowerShell 中运行。


5. GitLab Runner 文件放置位置

如果服务器只有 C 盘,推荐放在:

C:\GitLabRunner

不要放在:

C:\Users\Administrator\Downloads C:\Users\Administrator\Desktop

原因:

1. 下载目录容易被清理 2. 用户目录权限可能变化 3. Windows 服务长期运行时不稳定 4. 维护不方便

创建目录

管理员 CMD 中执行:

mkdir C:\GitLabRunner

复制并重命名 Runner

假设下载文件在:

C:\Users\Administrator\Downloads\gitlab-runner-windows-amd64.exe

执行:

copy C:\Users\Administrator\Downloads\gitlab-runner-windows-amd64.exe C:\GitLabRunner\gitlab-runner.exe

验证 Runner

cd C:\GitLabRunner .\gitlab-runner.exe --version

正常会显示版本信息,例如:

Version: 19.0.1 Runtime platform arch=amd64 os=windows

6. 重启服务器是否必要

安装 Git、.NET SDK、Build Tools 后,不强制要求立刻重启。

但建议在注册 Runner 前重启一次,原因是:

Git、dotnet、MSBuild 安装后会修改环境变量。 Runner 安装成 Windows 服务后,会读取系统环境变量。 重启可以避免服务读取不到新环境变量。

Windows Server 重启时可能会出现:

选择一个最能说明你要关闭这台计算机的原因

这是 Windows Server 正常的关机/重启原因记录,不是报错。

可以选择:

其他(计划内)

然后点击:

继续

7. 注册 Runner 前的网络检查

Runner 必须能访问 GitLab。

你的 GitLab 地址是:

http://gitlab.xxxx

注意,注册 Runner 时填的是 GitLab 根地址,不是项目地址。

正确:

http://gitlab.xxxx

7.1 测试 GitLab 域名是否可用

管理员 CMD 中执行:

ping gitlab.xxxx

如果出现:

lookup gitlab.xxxx: no such host

或:

Ping 请求找不到主机 gitlab.xxxx

说明阿里云服务器解析不了公司内网域名。


8. 配置 hosts 解决 GitLab 域名解析问题

你的服务器最终解析到了:

gitlab.xxxx -> 10.xxx.xx.xx

可以通过 hosts 文件固定解析。

8.1 添加 hosts 记录

管理员 CMD 执行:

echo 10.xxx.xx.xx gitlab.xxxx >> C:\Windows\System32\drivers\etc\hosts

8.2 刷新 DNS 缓存

ipconfig /flushdns

8.3 验证

ping gitlab.xxxx

正确结果类似:

正在 Ping gitlab.xxxx [10.xxx.xx.xx] 具有 32 字节的数据: 来自 10.xxx.xx.xx 的回复: 字节=32 时间=3ms TTL=59

如果能 ping 通,说明域名解析和网络都正常。

如果 ping IP 也不通,说明不是 hosts 问题,而是阿里云服务器和公司内网不通,需要运维处理 VPN、专线、NAT 或公网访问。


9. 在 GitLab 页面创建 Runner

进入 GitLab 项目:

项目名称 ↓ 设置 ↓ CI/CD ↓ Runner ↓ 新建项目 runner

平台选择:

Windows

这是正确的,因为服务器是 Windows。

创建后页面会显示一条命令,类似:

.\gitlab-runner.exe register --url http://gitlab.xxxx --token glrt-xxxxxxxx

这里的:

glrt-xxxxxxxx

就是 Runner 身份验证令牌。


10. 注册 Runner

在服务器管理员 CMD 中执行:

cd C:\GitLabRunner .\gitlab-runner.exe register

也可以直接使用 GitLab 页面给的完整命令:

.\gitlab-runner.exe register --url http://gitlab.xxxx --token glrt-你的token

10.1 交互式填写说明

GitLab instance URL

填写:

http://gitlab.xxxx

不要填项目地址,也不要填gitlab-runner install命令。

Registration token

只填 token 本身:

glrt-xxxxxxxx

不要填整条命令。

错误示例:

.\gitlab-runner.exe register --url http://gitlab.xxxx --token glrt-xxxx

这个不能填在 token 输入框里。

Description / Name

可以填:

aliyun-windows-runner

也可以直接回车使用默认值。

Tags

必须填:

windows

因为你的.gitlab-ci.yml中使用:

tags:-windows

如果 Runner 没有windows标签,流水线会一直 Pending。

Maintenance note

可以不填,直接回车。

Executor

必须填:

shell

不要选:

docker ssh kubernetes virtualbox parallels

当前项目是 WPF / .NET Windows 项目,需要在 Windows 本机环境编译,所以使用shell。

后续如果出现错误:Runner 使用pwsh报错:executable file not found in %PATH%

错误现象:第一次触发 CI 时,Job 在Preparing environment阶段失败:

Using Shell (pwsh) executor... ERROR: Job failed (system failure): prepare environment: failed to start process: starting OS command: exec: "pwsh": executable file not found in %PATH%

原因,GitLab Runner 的config.toml中配置了:

executor = "shell" shell = "pwsh"

但是服务器没有安装 PowerShell 7,或者pwsh.exe没有加入系统 PATH。

pwsh是 PowerShell 7 / PowerShell Core 的命令,不是 Windows Server 默认自带的powershell.exe。

临时处理

先把 Runner shell 改成 Windows 自带的 PowerShell:

shell = "powershell"

然后重启 Runner:

cd C:\GitLabRunner .\gitlab-runner.exe restart

后续更优处理

因为后续使用shell = "powershell"时出现了 GitLab Runner 注入环境变量脚本解析异常,所以最终建议安装 PowerShell 7,再改回:

shell = "pwsh"

powershell -version命令报错

错误现象,在 CMD 中执行:

powershell -version

提示:

参数 version 缺少参数。

原因:powershell -version不是查看 PowerShell 版本的正确命令。-Version参数用于指定启动的 PowerShell 版本,不是输出版本号。

正确验证命令,在 CMD 中执行:

powershell -NoProfile -Command "$PSVersionTable.PSVersion"

安装 PowerShell 7 后验证:

pwsh -NoLogo -NoProfile -Command "$PSVersionTable.PSVersion"

确认pwsh路径:

where pwsh

正常应输出:

C:\Program Files\PowerShell\7\pwsh.exe

10.2 注册成功标志

如果看到:

Runner registered successfully. Configuration was saved in "C:\GitLabRunner\config.toml"

说明 Runner 已经成功注册。


11. 安装 Runner 为 Windows 服务

注册成功后,还需要安装并启动服务。

注意顺序:必须先install,再start。

11.1 安装服务

cd C:\GitLabRunner .\gitlab-runner.exe install

11.2 启动服务

.\gitlab-runner.exe start

11.3 查看状态

.\gitlab-runner.exe status

正常结果类似:

gitlab-runner: Service is running

12. 常见错误与解决方式

12.1 双击 GitLab Runner 闪退

原因:

gitlab-runner.exe 是命令行程序,不是图形安装器。

解决:

cd C:\GitLabRunner .\gitlab-runner.exe --version

不要双击运行。


12.2系统找不到指定的驱动器

示例:

mkdir D:\GitLabRunner 系统找不到指定的驱动器。

原因:服务器没有 D 盘。

解决:改用 C 盘:

mkdir C:\GitLabRunner

12.3 GitLab URL 填错

正确填法:

http://gitlab.xxxx

12.4 Token 输入错误

错误做法:在 token 输入处填写整条命令:

.\gitlab-runner.exe register --url http://gitlab.xxxx --token glrt-xxxx

正确做法:只填 token:

glrt-xxxx

如果使用完整命令注册,则直接在 CMD 中执行完整命令,不要再逐项输入。


12.5lookup gitlab.xxxx: no such host

原因:服务器不能解析 GitLab 域名。

解决:配置 hosts。

echo 10.xxx.xx.xx gitlab.xxxx >> C:\Windows\System32\drivers\etc\hosts ipconfig /flushdns ping gitlab.xxxx

12.6The specified service does not exist as an installed service

错误:

FATAL: Failed to start gitlab-runner: The specified service does not exist as an installed service.

原因:你直接执行了:

.\gitlab-runner.exe start

但还没有先安装服务。

解决:

.\gitlab-runner.exe install .\gitlab-runner.exe start .\gitlab-runner.exe status

12.7msbuild 不是内部或外部命令

原因:Build Tools 安装完成,但 MSBuild 没加入 PATH,或者终端没有刷新环境变量。

解决方式一:使用完整路径:

"C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\MSBuild.exe" -version

解决方式二:重启服务器后再试:

msbuild -version

13. Runner 注册完成后的检查

13.1 在服务器检查

cd C:\GitLabRunner .\gitlab-runner.exe status

正常应显示:

Service is running

13.2 在 GitLab 页面检查

进入:

项目 ↓ 设置 ↓ CI/CD ↓ Runner

应该能看到:

aliyun-windows-runner Online / 绿色状态 Tag: windows Executor: shell

14. 与当前 CI 的关系

你的.gitlab-ci.yml中任务使用了:

tags:-windows

所以只有带有windows标签的 Runner 才会接收这些 Job。

如果 Runner 没有windows标签,Pipeline 会一直 Pending。

当前项目是 WPF / .NET Windows 项目,所以 Runner 使用:

Windows + shell executor

这是正确选择。


15. 后续建议

15.1 不建议部署在数据库服务器

虽然数据库服务器也可以安装 Runner,但不推荐。

原因:

1. CI 编译会占用 CPU、内存、磁盘 IO 2. Runner 会执行 CI 脚本,有一定安全风险 3. 数据库服务器应尽量保持稳定、隔离

你现在使用阿里云独立 Windows 服务器部署 Runner,是更合适的方案。

15.2 Token 泄露处理

如果 Runner token 已经截图或发送给别人,建议:

1. 删除当前 Runner 2. 重新创建 Runner 3. 使用新的 token 注册

15.3 网络必须长期可用

Runner 必须能访问:

GitLab: http://gitlab.xxxx MES: http://39.xxx.xx.xx:81 更新服务器: http://10.xxx.xx.xxx:5111

其中 GitLab 是最基础的。如果 Runner 访问不了 GitLab,就无法拉代码和接收 CI 任务。


16. 最终完整命令清单

以下是从已有安装包开始的完整命令流程。

16.1 创建 Runner 目录

mkdir C:\GitLabRunner

16.2 复制 Runner 文件

copy C:\Users\Administrator\Downloads\gitlab-runner-windows-amd64.exe C:\GitLabRunner\gitlab-runner.exe

16.3 验证 Runner

cd C:\GitLabRunner .\gitlab-runner.exe --version

16.4 配置 GitLab 域名解析

echo 10.xxx.xx.xx gitlab.xxxx >> C:\Windows\System32\drivers\etc\hosts ipconfig /flushdns ping gitlab.xxxx

16.5 注册 Runner

cd C:\GitLabRunner .\gitlab-runner.exe register --url http://gitlab.xxxx --token glrt-你的token

交互项:

Description: aliyun-windows-runner Tags: windows Maintenance note: 直接回车 Executor: shell

16.6 安装并启动服务

.\gitlab-runner.exe install .\gitlab-runner.exe start .\gitlab-runner.exe status

17. 环境验证命令汇总

git --version
dotnet --list-sdks
"C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\MSBuild.exe" -version
ping gitlab.xxxx
cd C:\GitLabRunner .\gitlab-runner.exe --version .\gitlab-runner.exe status

全部正常后,Runner 环境基本可用。


18. 判断部署是否完成

满足以下条件,即认为 Runner 部署完成:

√ Git 可以执行 √ dotnet 可以执行,并能看到 .NET 8 SDK √ MSBuild 可以执行 √ gitlab.xxxx 可以 ping 通 √ GitLab Runner 注册成功 √ GitLab Runner 服务正在运行 √ GitLab 页面显示 Runner Online √ Runner 标签包含 windows √ Executor 为 shell

完成后就可以开始触发 GitLab CI Pipeline,验证项目是否能正常编译、打包和发布。

相关新闻

  • Roblox帧率解锁终极指南:突破60FPS限制的完整教程
  • “太卷了!”2026技术校招笔试现场崩溃实录,看完你就不焦虑了
  • Qt 5.15.2 + Android 开发环境配置指南

最新新闻

  • ComfyUI插件自动化测试:基于GitHub Actions的持续集成实践
  • NoSleep防休眠工具:终极Windows屏幕锁定解决方案,告别自动休眠烦恼
  • 八字排盘的命理软件推荐:2026最新第三方测评看这几条硬指标
  • 在职考公每天只有 1 小时,粉笔线上课和题库怎么用
  • 电商作图工具有哪些?支持AI抠图、主图生成和详情页设计
  • 计算机毕业设计之jsp基于SSM的热点个性化推荐新闻

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号