在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

相关推荐
张世争8 小时前
windows clion MingW cmake 编译运行 FreeRTOS
windows·freertos·mingw·cmake·clion
AI 智能服务8 小时前
第6课__本地工具调用(文件操作)
服务器·人工智能·windows·php
IDC02_FEIYA9 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
Kevin Wang72710 小时前
欧拉系统服务部署注意事项
网络·windows
取个名字太难了a12 小时前
初始化APC
windows
C++ 老炮儿的技术栈13 小时前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
Ankie Wan14 小时前
windows技巧:要将 Windows 资源管理器的默认查看方式设置为详细信息
windows·windows11·效率提升·文件夹·windows技巧·详细信息
ayaya_mana16 小时前
VS Code 远程开发:SSH连接与远程资源管理器的配置
linux·ide·windows·vscode·远程资源管理
龙潜月七16 小时前
做一个背单词的脚本
数据库·windows·c#·aigc·程序那些事
ohoy17 小时前
RedisTemplate 使用之List
数据结构·windows·list