Ubuntu 上安装 GitLab

在 Ubuntu 上安装 GitLab 的步骤如下。GitLab 提供社区版(GitLab CE)和企业版(GitLab EE),以下步骤以社区版为例:


方法 1:通过官方包管理工具安装 GitLab

  1. 更新系统包

    bash 复制代码
    sudo apt update
    sudo apt upgrade -y
  2. 安装必要的依赖

    bash 复制代码
    sudo apt install -y curl openssh-server ca-certificates tzdata perl
  3. 添加 GitLab 官方包存储库

    下载并运行 GitLab 提供的脚本:

    bash 复制代码
    curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  4. 安装 GitLab CE

    指定你的域名(或 IP 地址)时,请替换 <YOUR_DOMAIN>

    bash 复制代码
    sudo EXTERNAL_URL="http://<YOUR_DOMAIN>" apt install gitlab-ce -y

    sudo EXTERNAL_URL="http://13.229.140.142" apt install gitlab-ce -y

  5. 配置 GitLab

    安装完成后,运行以下命令配置并启动 GitLab:

    bash 复制代码
    sudo gitlab-ctl reconfigure
  6. 访问 GitLab

    • 打开浏览器,访问 http://<YOUR_DOMAIN>http://<YOUR_SERVER_IP>
    • 默认的管理员用户为 root,首次登录时会提示设置密码。

    http://13.229.140.142

    root

    WThvB7LjW2JBMg60dReq9qXIW7BgykROMAHJg8J0SH0=

cat /etc/gitlab/initial_root_password


方法 2:通过 Docker 安装 GitLab(可选)

使用 Docker 安装 GitLab 是一种更灵活的方式。

  1. 安装 Docker

    如果尚未安装 Docker,请先安装:

    bash 复制代码
    sudo apt update
    sudo apt install -y docker.io
  2. 拉取 GitLab Docker 镜像

    拉取最新的社区版镜像:

    bash 复制代码
    docker pull gitlab/gitlab-ce:latest
  3. 运行 GitLab 容器

    替换 <YOUR_DOMAIN> 为你的域名或服务器 IP:

    bash 复制代码
    docker run --detach \
      --hostname <YOUR_DOMAIN> \
      --publish 443:443 --publish 80:80 --publish 22:22 \
      --name gitlab \
      --restart always \
      --volume /srv/gitlab/config:/etc/gitlab \
      --volume /srv/gitlab/logs:/var/log/gitlab \
      --volume /srv/gitlab/data:/var/opt/gitlab \
      gitlab/gitlab-ce:latest
  4. 访问 GitLab

    打开浏览器访问 http://<YOUR_DOMAIN>,并按照界面提示完成初始配置。


常用命令

  1. 启动 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl start
  2. 停止 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl stop
  3. 查看 GitLab 状态

    bash 复制代码
    sudo gitlab-ctl status
  4. 重启 GitLab 服务

    bash 复制代码
    sudo gitlab-ctl restart
  5. 查看日志

    bash 复制代码
    sudo gitlab-ctl tail

注意事项

  • 防火墙配置:确保开放 HTTP(80)、HTTPS(443)、和 SSH(22) 端口:

    bash 复制代码
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw allow ssh
  • 内存需求:GitLab 推荐至少 4GB RAM,最低 2GB RAM。

  • 备份:定期备份 GitLab 数据:

    bash 复制代码
    sudo gitlab-rake gitlab:backup:create

按照以上步骤,你可以在 Ubuntu 系统上顺利安装和配置 GitLab。如果需要更多自定义设置,可以参考 GitLab 的官方文档.

要调整 GitLab 的内存使用配置为 2GB,可以通过优化 GitLab 的内存相关设置来完成。这在资源受限的环境(如小型虚拟机或测试环境)中特别有用。


步骤 1:修改 Unicorn/Sidekiq 的配置

GitLab 使用 Unicorn(或 Puma)Sidekiq 作为核心组件,这些组件可以调整内存占用。

  1. 打开配置文件

    GitLab 的主要配置文件在 /etc/gitlab/gitlab.rb

    bash 复制代码
    sudo nano /etc/gitlab/gitlab.rb
  2. 调整 Unicorn/Puma 工作线程

    找到或添加以下设置,减少工作线程数以降低内存使用:

    ruby 复制代码
    puma['worker_processes'] = 2  # 如果是 Unicorn,使用 unicorn['worker_processes']
  3. 调整 Sidekiq 并发任务数

    找到或添加以下设置,减少 Sidekiq 并发任务数:

    ruby 复制代码
    sidekiq['concurrency'] = 5

步骤 2:调整数据库连接池

减少数据库连接池大小可以节省资源。

  1. 在配置文件中添加或修改以下设置:

    ruby 复制代码
    postgresql['shared_buffers'] = "256MB"
    postgresql['work_mem'] = "4MB"
    postgresql['maintenance_work_mem'] = "16MB"
  2. 调整 GitLab 数据库的连接池大小:

    ruby 复制代码
    gitlab_rails['db_pool'] = 5

步骤 3:优化 Redis

Redis 是 GitLab 的缓存和队列系统,调整其内存限制可以减少消耗。

  1. 在配置文件中添加或修改:

    ruby 复制代码
    redis['maxmemory'] = "512MB"
  2. 限制 Redis 的最大内存策略(一般默认是 noeviction):

    bash 复制代码
    sudo nano /var/opt/gitlab/redis/redis.conf

    添加或修改以下内容:

    plaintext 复制代码
    maxmemory-policy allkeys-lru

步骤 4:重新配置 GitLab

应用配置更改后,重新配置 GitLab:

bash 复制代码
sudo gitlab-ctl reconfigure

步骤 5:重启 GitLab 服务

重启 GitLab 服务以使更改生效:

bash 复制代码
sudo gitlab-ctl restart

步骤 6:监控内存使用情况

使用以下命令监控内存使用情况,确保调整后的 GitLab 稳定运行:

bash 复制代码
free -m
htop

注意事项

  1. 适配低内存环境

    • GitLab 推荐至少 4GB 内存,配置为 2GB 可能影响性能。
    • 在测试环境中较为适合,但在生产环境需要谨慎调整。
  2. 减小缓存

    • 配置 Gitaly 缓存大小限制(Gitaly 是 GitLab 的存储服务):

      ruby 复制代码
      gitaly['cgroups_memory_limit'] = 1024 * 1024 * 1024 # 限制为 1GB
  3. 更新配置后及时测试

    • 检查服务是否正常运行,执行以下命令查看状态:

      bash 复制代码
      sudo gitlab-ctl status

通过以上步骤,可以将 GitLab 的内存使用控制在 2GB 左右。

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩4 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言