概要

GitLab 是一个基于 web 的 Git 代码仓库管理工具,提供了完整的 CI/CD 功能和项目管理特性。用户可以通过 GitLab 托管和管理他们的软件项目,包括代码的版本控制、问题跟踪、持续集成和部署管道。GitLab 允许团队协作开发,并且支持自动化测试和部署,从而提高开发效率和软件质量;在部署过程中遇到很多坑,这里记录一下;
中文文档地址

部署前置工作

可参考我之前文档进行快速部署docker和nginx:

开始部署gitlab

1.创建一个文件夹用来存放docker-compose.yml文件
mkdir /home/app/docker
2.开始构建docker-compose.yml
vi /home/app/docker/docker-compose.yml
version: '3.6'
services:
  web:
    image: 'registry.gitlab.cn/omnibus/gitlab-jh:latest'
    restart: always
    hostname: '127.0.0.1'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://127.0.0.1:8929' // 这个IP可以修改成你的公网IP或者域名,这个不影响,后面也可以修改配置文件进行变更
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '8929:8929'
      - '2224:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
    shm_size: '256m'

提示: 我这里是使用的其他的端口,因为我目前这个服务器是代理服务器,gitlab并不在这个服务器中,80、22和443要保留给nginx进行代理

3. 执行命令开始构建镜像
docker compose up -d
4. 镜像构建完成自动启动容器

容器
提示:等待几分钟,容器状态STATUS变更为healthy后就启动成功了

5. 获取root默认密码
cat /srv/gitlab/initial_root_password

提示:此密码会在24后删除,登录成功尽快修改密码

6. 配置nginx进行代理
location / {
            proxy_pass          http://127.0.0.1:8929;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_ssl_verify off;
        }
7.开启80端口配置

在这里插入图片描述

8.输入IP或者域名登录成功

在这里插入图片描述

踩坑补充

  • 因为采用nginx代理的方式代码地址与 external_url ‘http://127.0.0.1:8929’ 配置的地址相同,但8929端口并未开启(clone代码会报超时),由nginx80端口进行代理所以添加以下配置
vi /srv/gitlib/config/gitlab.rb
external_url 'http://*.*.*.172'
nginx['listen_port'] = 8929
  • 修改配置文件后重新应用到所有配置:
docker exec -it 46fa60e3aa93 gitlab-ctl reconfigure
  • 重启服务(几分钟后启动成功):
docker exec -it 46fa60e3aa93 gitlab-ctl restart

小结

提示:内存最好不小于8G,用户量少可以加一下Swap

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐