Gitlab的搭建

1.在Ubuntu上使用原生命令安装Gitlab 首先更新Linux系统中的软件包版本并安装必须的依赖 # 更新系统中软件包版本 sudo apt update sudo apt upgrade -y # 安装必须依赖 sudo apt install -y curl openssh-server

1.在Ubuntu上使用原生命令安装Gitlab

首先更新Linux系统中的软件包版本并安装必须的依赖

# 更新系统中软件包版本
sudo apt update
sudo apt upgrade -y

# 安装必须依赖
sudo apt install -y curl openssh-server ca-certificates tzdata perl

Gitlab提供了一键安装的脚本,用于自动配置apt的Gitlab仓库和包管理器。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

接着执行Gitlab的安装命令

# gitlab-ce社区版安装
sudo apt install gitlab-ce
# gitlab-ee企业版安装
sudo apt install gitlab-ee

安装完成之后会有如下的安装完成的提示信息

It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

接着需要修改Gitlab配置文件vim /etc/gitlab/gitlab.rb去修改Gitlab的启动端口号,找到配置external_url配置行,自定义端口号,并在防火墙当中放开该端口号。参考配置如下:

external_url 'http://192.168.1.123:10203'

需要注意的是,这里的IP地址需要配置真实的IP地址,尽量不要配置localhost,因为在后续添加远程仓库时,会用到这个地址,如果是localhost的话,那么远程仓库就得自己写IP地址,不能直接填写localhost。

在修改完成配置文件之后,接着我们需要重启Gitlab,重启Gitlab需要很久很久,基本上得好几分钟。

sudo gitlab-ctl reconfigure

刚启动Gitlab,可能会遇到502的情况,原因在于此时的Gitlab还没完全启动。

gitlab-start-boot-502.png

如果很久都没有启动完成,出现502的情况,需要查找日志解决,很可能是因为Puma出问题导致的,因为Gitlab的页面是通过Puma服务启动的,如果502的话,大概率是这个服务没启动完成。

我们通过cat /var/log/gitlab/puma/current查找Puma的日志发现8080端口被占用的情况。

2024-09-02_17:37:28.17541 bundler: failed to load command: puma (/opt/gitlab/embedded/bin/puma)
2024-09-02_17:37:28.17605 /opt/gitlab/embedded/lib/ruby/gems/3.1.0/gems/puma-6.4.0/lib/puma/binder.rb:334:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE)

我们使用命令sudo vim /etc/gitlab/gitlab.rb去编辑Gitlab配置文件,搜索到puma的port配置的地方,需要将puma端口号修改一下,比如10204,默认端口号是8080,但是8080是很多WebServer常用的端口,容易发生冲突。

puma['port'] = 10204

在修改完成Puma的端口号之后,我们需要重启Gitlab服务器。

sudo gitlab-ctl reconfigure

重启完成Gitlab服务器之后,我们在日志当中重新搜索cat /var/log/gitlab/puma/current,发现Puma在端口号10204成功启动。

2024-09-02_17:50:51.51490 {"timestamp":"2024-09-02T17:50:51.514Z","pid":742162,"message":"* Listening on http://127.0.0.1:10204"}

接着,我们就可以使用http://wanna1314y.top:10203访问Gitlab成功访问。

gitlab-login-page-start.png

使用下面的命令查看Gitlab的初始账号密码进行登录(默认用户名是root)。

cat /etc/gitlab/initial_root_password

2.使用Docker的方式安装Gitlab

使用下面的命令拉取Gitlab镜像:


sudo docker pull gitlab/gitlab-ce

使用下面的命令启动Gitlab


docker run -d  -p 443:443 -p 8082:80 -p 222:22 --name gitlab --restart always -v /home/mappingdata/gitlab/config:/etc/gitlab -v /home/mappingdata/gitlab/logs:/var/log/gitlab -v /home/mappingdata/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

使用下面的命令查看Gitlab的初始账号密码(默认用户名是root)。

cat /etc/gitlab/initial_root_password
Comment