在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

相关推荐
小年糕是糕手9 小时前
【C语言】C语言预处理详解,从基础到进阶的全面讲解
linux·c语言·开发语言·数据结构·c++·windows·microsoft
专注VB编程开发20年9 小时前
c#vb.net动态创建二维数组
windows·c#·vb.net·二维数组
浆果020710 小时前
FFmpeg安装(Windows)
windows·ffmpeg
BullSmall11 小时前
Windows 11 下 Notepad++ 等应用无法启动问题排查&修复
windows·notepad++
love530love13 小时前
EPGF架构:Python开发的长效稳定之道
开发语言·ide·人工智能·windows·python·架构·pycharm
OK_boom14 小时前
C#异步协同常用例子
windows·microsoft·c#
范桂飓14 小时前
在 Windows GPU 机器上运行 Linux CUDA
linux·运维·windows
宁雨桥15 小时前
保姆级教程:windows和linux双系统的电脑如何无副作用,安全删除linux
linux·windows·电脑
charlie11451419117 小时前
Chrome 学习小记5——demo:(动态壁纸基础)
chrome·windows·学习
张璐月18 小时前
go 持续集成、持续部署之gitlab流水线+docker-compose踩坑之旅
ci/cd·golang·gitlab