前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gitlab代码仓库的安装、配置

Gitlab代码仓库的安装、配置

原创
作者头像
星哥玩云
发布2022-08-19 15:39:12
8160
发布2022-08-19 15:39:12
举报
文章被收录于专栏:开源部署

对于企业级的私有 git 仓库,gitlab 是个不错的选择。

今天就来说说 gitlab 的安装、配置。

系统配置建议:最低双核 4G 内存。

1. 说明

根据官方的安装教程,选取 ubuntu 环境下的社区版进行安装:https://about.gitlab.com/install/#ubuntu?version=ce

如果需要其他的环境(如 CentOSdocker 等)或者企业版,参考这里:https://about.gitlab.com/install/

注:社区版是免费的,企业版是收费的。

2. 安装、配置所需依赖

代码语言:javascript
复制
sudo apt-get install -y curl openssh-server ca-certificates
代码语言:javascript
复制
sudo apt-get install -y postfix

3. 添加安装包地址,并安装

代码语言:javascript
复制
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
代码语言:javascript
复制
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce

这里需要把 http://gitlab.example.com 改成你自己的真正对外服务的 gitlab url 地址(也可以安装后在配置文件里面更改)。

到这里为止,gitlab 就算安装好了。

4. 安装之后

gitlab 默认建议安装在一个单独的主机上,默认使用内置的 nginx 服务器,并使用 808080 两个端口。

如果你是按照 gitlab 的默认建议,使用的是单独的主机,直接访问 ip 地址 http://ip,或者把域名解析到这台机器上后直接访问域名 http://gitlab.your.com,然后按照步骤在 web 页面上初始化 gitlab 就可以了。

然而,很多情况下,gitlab 并不会部署到一台单独的服务器上,而是像其他很多服务一样(如 jenkins),部署到同一台服务器上,然后使用 nginx 反向代理。

5. nginx 反向代理配置

添加 nginx 配置:

代码语言:javascript
复制
upstream gitlab-workhorse {
    server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}

server {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name gitlab.your.com;
  server_tokens off;
  root /opt/gitlab/embedded/service/gitlab-rails/public;

  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;

  location / {
    client_max_body_size 0;
    gzip off;

    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;
    proxy_http_version 1.1;
    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_pass http://gitlab-workhorse;
  }
}

如果想要了解更详细的配置,可以参考:NGINX settings | GitLab

重新加载 nginx 配置:

代码语言:javascript
复制
service nginx reload
# or
service nginx restart

修改 gitlab 配置:

代码语言:javascript
复制
vi /etc/gitlab/gitlab.rb

external_url 'http://gitlab.your.com'            # 此处修为你自己的 gitlab url
web_server['external_users'] = ['www-data']      # 设置外部 webserver 用户
nginx['enable'] = false                          # 不使用内置的 nginx
代码语言:javascript
复制
sudo usermod -aG gitlab-www www-data             # 把 www-data 用户添加到 gitlab-www 组

gitlab 服务默认使用的是 8080 端口,如果 8080 端口已经被其他程序(如 tomcat)占用,需要改成其他端口:

代码语言:javascript
复制
unicorn['port'] = 8081                           # 改成你自己觉得好的端口

更新 gitlab 配置,重启服务:

代码语言:javascript
复制
gitlab-ctl reconfigure
gitlab-ctl restart

现在你就可以访问 http://gitlab.your.com,然后按照步骤在 web 页面上初始化 gitlab 就可以了。

6. 常用命令

代码语言:javascript
复制
gitlab-ctl start                                 # 启动 gitlab
gitlab-ctl stop                                  # 停止 gitlab
gitlab-ctl restart                               # 重启 gitlab
gitlab-ctl status                                # 查看服务状态
vi /etc/gitlab/gitlab.rb                         # 修改配置文件
gitlab-ctl reconfigure                           # 重新编译 gitlab 配置
gitlab-rake gitlab:check SANITIZE=true --trace   # 检查 gitlab
gitlab-ctl tail                                  # 查看日志
gitlab-ctl tail nginx/gitlab_access.log

7. 常用目录

代码语言:javascript
复制
/var/log/gitlab/                                 # 日志地址
/var/opt/gitlab/                                 # 服务地址

8. 查看版本

代码语言:javascript
复制
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

9. 可能遇到的一些问题

9.1 File to import not found or unreadable

解决:需要 npm 安装一下

代码语言:javascript
复制
cd /opt/gitlab/embedded/service/gitlab-rails
npm install
gitlab-ctl restart   

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对于企业级的私有 git 仓库,gitlab 是个不错的选择。
    • 1. 说明
      • 2. 安装、配置所需依赖
        • 3. 添加安装包地址,并安装
          • 4. 安装之后
            • 5. nginx 反向代理配置
              • 6. 常用命令
                • 7. 常用目录
                  • 8. 查看版本
                    • 9. 可能遇到的一些问题
                      • 9.1 File to import not found or unreadable
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档