在windows server 2022搭建gitlab……但是失败了

在windows server 2022搭建gitlab......但是失败了

  • [1. 前言](#1. 前言)
  • [2. 安装ubuntu环境](#2. 安装ubuntu环境)
  • [2. 安装docker](#2. 安装docker)
  • [3. 映射](#3. 映射)
    • [3.1 端口映射](#3.1 端口映射)
    • [3.2 路径映射](#3.2 路径映射)

1. 前言

上一篇:在windows本地机搭建gitlab

本来按理来说没必要另起一篇,但是没想到,在新机器的windows server 2022上按照上篇搭建了之后,发现gitlab安装成功后,怎么都起不来,在管理页面也始终是500错误。

折腾了几个星期,用尽各种办法都搞不定,docker desktop还一直在崩溃,换了新版本也没用。

直到找到docker desktop官方页面Install Docker Desktop on Windows文档中的一句话,一切才豁然开朗......

bash 复制代码
Docker Desktop is not supported on server versions of Windows, such as Windows Server 2019 or Windows Server 2022. 

nmd,wsm

总之,有点难崩了,它让我去微软的官方文档开始:为容器准备 Windows查找使用方法。

顺便,又找到了一位前辈写的教程:Windows Server 2022 安装配置------安装 Docker

既然找到了根因,那就又有了信心,开干!

2. 安装ubuntu环境

打开powershell(注意!不能是cmd,否则会没有相关的命令可以执行!)

安装虚拟容器环境

bash 复制代码
Install-WindowsFeature -Name Hyper-V
Install-WindowsFeature -Name containers

然后重启电脑

再次打开powershell,安装docker

bash 复制代码
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
\install-docker-ce.ps1
# 检查版本
docker version

前辈的文章中说可选安装docker-compose,但是安装之后却报错了,不过考虑到也用不着多容器执行,就跳过了。

再次重启电脑

安装wsl(该指令只支持windows server 2022版本,其它需要手动安装)

bash 复制代码
wsl --install

这会自动下载并安装Ubuntu系统到你的windows上,等待下载安装完成。

注意,这个过错中会让你输入初始用户名和2次密码,记得修改内容!后面再改会非常麻烦!

退出wsl

bash 复制代码
exit

查看wsl版本,确定是wsl2

bash 复制代码
wsl --status

再次进入wsl:

bash 复制代码
wsl

此外,列出一些命令:

查看wsl中的系统

bash 复制代码
wsl --list --verbose

注销(删除)wsl中的系统

bash 复制代码
wsl --unregister <Ubuntu名称>

2. 安装docker

这部分基本就是照抄前辈写的内容:Windows Server 2022 安装配置------安装 Docker

进入wsl

bash 复制代码
wsl

安装依赖

bash 复制代码
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

安装docker

bash 复制代码
# 创建存放文件夹
sudo mkdir -p /etc/apt/keyrings
# curl下载密钥,并存放至刚创建的文件夹下
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置存储库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

验证

bash 复制代码
sudo service docker start
sudo docker version

成功打印版本信息,安装docker成功。

bash 复制代码
# 将当前用户添加到docker组(避免每次使用sudo),需要重启wsl生效
sudo usermod -aG docker $USER

后续使用wsl中的docker,安装gitlab。

3. 映射

3.1 端口映射

wsl2会自动将端口映射到windows相同端口

3.2 路径映射

将共享文件夹路径从docker映射到windows:

/mnt/<盘符>/<文件夹>映射(如/mnt/d/gitlab-data),对应 Windows 的D:\gitlab-data

但是!!!/mnt/<盘符>/下面的文件系统本质上仍然是windows的文件系统,所以直接映射之后,gitlab运行会报错!!!

需要在/mnt下面新建linux文件系统的目录,用于挂载,例如:

bash 复制代码
mkdir -p /mnt/gitlab/config
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data

在windows系统中想要访问这些文件只需要在文件浏览器里面输入:

bash 复制代码
\\wsl$

如果权限不足,则在wsl中把默认登录用户修改为root:

bash 复制代码
sudo vi /etc/wsl.conf

重启wsl

bash 复制代码
wsl --shutdown

......然后启动gitlab还是报错500了。

我投降,把数据都打包在容器里面吧,不搞外部数据路径映射了,这样下次搬迁的时候还好搬一点......

于是,直接下载完整的latest的gitlab镜像,不使用任何外部路径,在容器内部运行,不改任何东西!
又报错500了......

500的错误实在太多,根本修不完,决定投降。

gitlab再见,一转部署gitea!

下一篇:在windows server 2022搭建gitea

相关推荐
AI袋鼠帝10 小时前
Claude4.5+Gemini3 接管电脑桌面,这回是真无敌了..
人工智能·windows·aigc
獨枭11 小时前
Windows 下安装与使用 Miniconda 完整指南
windows
命里有定数12 小时前
保姆级教程:在 Windows (WSL2) 下本地部署 Qwen3-ASR
windows
lucky670715 小时前
Windows 上彻底卸载 Node.js
windows·node.js
编程小白202616 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
凯子坚持 c17 小时前
CANN 性能剖析实战:从原始事件到交互式火焰图
windows·microsoft
开开心心就好18 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
獨枭18 小时前
PyCharm 跑通 SAM 全流程实战
windows
仙剑魔尊重楼19 小时前
音乐制作电子软件FL Studio2025.2.4.5242中文版新功能介绍
windows·音频·录屏·音乐·fl studio
PHP小志19 小时前
Windows 服务器怎么修改密码和用户名?账户被系统锁定如何解锁
windows