利用 WSL 搭建 gitlab docker 版本
部署用到的工具
- Windows Terminal: Windows 命令行神器
- WSL2: Windows子系統 Linux
- Docker:開源的應用容器引擎
- gitlab:代碼管理工具
1. 安裝WSL2
1.開啟 "Windows Subsystem for Linux"
以管理員身份打開 PowerShell,輸入如下命令,並重啟電腦:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.設置 WSL2 為默認
打開 PowerShell,輸入如下命令:
wsl --set-default-version 2
3.安裝 Linux 發行版本
3.1 打開 Microsoft Store , 搜索 Linux,下載Ubuntu
3.2 安裝過程中,請設置用戶名
3.3 設置root密碼
輸入命令:sudo passwd root
4.Windows Terminal 安裝
1、打開 Microsoft Store , 搜索 Window Terminal,進行安裝.
2、安裝完成,打開 Ubuntu 命令界面
5.docker 安裝
在 Windows Terminal Ubuntu 命令如下:
# 准備
sudo apt remove docker docker-engine docker.io
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
# 安裝
sudo apt install docker-ce
# 啟動
sudo service docker start
6.gitlab 安裝
在 Windows Terminal Ubuntu 命令如下:
# 拉取鏡像
sudo docker pull gitlab/gitlab-ce:latest
# 啟動,注意:localhost 換成宿主機 ip,user 換成自己用戶名
sudo docker run --detach --hostname localhost --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --volume /home/user/gitlab/config:/etc/gitlab --volume /home/user/gitlab/logs:/var/log/gitlab --volume /home/user/gitlab/data:/var/opt/gitlab -m 3g gitlab/gitlab-ce:latest
7.Window 與 Linux 網絡打通
以管理員身份打開 PowerShell
# ip 為 Linux ip,請替換
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=ip
8.重置Docker里的gitlab管理員用戶密碼
8.1.docker ps 找出容器的唯一標識
sudo docker ps
user@DESKTOP-KSERHIV:/mnt/c/Users/XXX$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
f47918ecd153 gitlab/gitlab-ce:latest "/assets/wrapper" 21 minutes ago Up 21 minutes (healthy) 0.0.0.0:22->22/tcp, :::22->22/tcp, 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp gitlab
8.2 docker exec -it f47918ecd153 /bin/bash
進入Docker容器運行環境
8.3 開始重置gitlab管理員用戶密碼
root@192:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
GitLab: 14.0.5 (25fc1060aff) FOSS
GitLab Shell: 13.19.0
PostgreSQL: 12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
irb(main):001:0> user=User.where(id:1).first
=> #<User id:1 @root>
irb(main):002:0> user.password='123456'
=> "123456"
irb(main):003:0> user.password_confirmation='123456'
=> "123456"
irb(main):004:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 89e9421a-8a23-4789-8833-d063410200cc) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f5e32c89168 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
irb(main):005:0> exit
重要的是,您必須同時更改密碼和password_confirmation才能使其正常工作,別忘了保存更改
8.4 至此,管理員用戶名重置完畢,重置后的密碼為123456
9.訪問 gitlab
最后,您可以在 Windows ,通過 http://ip
,訪問 gitlab