在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

相关推荐
张3蜂7 小时前
GitLab Boards 深度解析:选型、竞品、成本与资源消耗
gitlab
烟花的学习笔记8 小时前
【科普向-第七篇】Git全家桶介绍:Git/Gitlab/GitHub/TortoiseGit/Sourcetree
git·gitlab·github·tortoisegit·嵌入式软件开发·sourcetree
张3蜂8 小时前
Jira vs. GitLab Issues vs. Redmine:终极选型与成本分析
gitlab·jira·redmine
私人珍藏库9 小时前
[吾爱出品] PDF文件加密解密工作,附带源码。
windows·pdf·加密
Doris_LMS17 小时前
Git在idea中的实战使用经验(一)
java·git·gitlab·idea
FL162386312919 小时前
windows下selenium的chromedriver安装和环境变量的配置
windows·selenium·测试工具
未来可期wlkq21 小时前
gitlab中回退代码,CI / CD 联系运维同事处理
ci/cd·gitlab
huluang21 小时前
VibeVoice 部署全指南:Windows 下的挑战与完整解决方案
windows·python
饮长安千年月1 天前
第四章 windows实战-emlog
windows·web安全·网络安全·github