GitLab本地搭建

参考文章地址:https://www.jianshu.com/p/808fbf9d972f

1. 安装相关依赖


yum install curl policycoreutils openssh-server openssh-clients -y# 确保sshd启动(正常情况下, sshd是启动的)systemctlenablesshdsystemctl start sshd

另外如果开启了防火墙, 注意设置防火墙的规则

2. 引入yum源, 并安装gitlab


curl -sShttps://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh| sudo bash

yum install gitlab-ce -y

配置并启动


gitlab-ctl reconfigure

如果设备配置比较低, 会在启动过程中卡死, 建议最低双核2G内存

如果当前服务器的80和8080端口均未被占用, 则直接可以通过服务器的ip或域名访问到后台

http://ip或域名

3. 使用主机的nginx

一般情况下, 我们希望通过自己nginx统一管理站点, 而不需要使用gitlab附带的, 这个时候我们要停用gitlab的nginx, 并配置我们自己的反向代理, 配置文件大致是这样


server {    
    listen80;    
    server_name  gitlab.yinnote.com;    
    location / {        
        proxy_pass  http://127.0.0.1:8080;
    }
}

之后, 我们在修改gitlab的配置文件

vim /etc/gitlab/gitlab.rb# 依次找到修改# 指定host地址

external_url'http://gitlab.yinnote.com'# 修改时区
gitlab_rails['time_zone'] ='PRC'# 关闭附带的
nginxnginx['enable'] =false

我们还需要修改unicorn的端口

同样找到并修改unicorn['port'] = 8080

之后就可以重新加载配置文件并重启服务了


gitlab-ctl reconfigure

gitlab-ctl restart

正常情况下, 我们应该可以通过http://gitlab.yinnote.com访问到后台, 但实际情况会出现错误

坑 1

image

这种情况, 我们只要重新执行一下npm安装依赖包即可

cd/opt/gitlab/embedded/service/gitlab-railsnpm install# 重启服务gitlab-ctl restart

注意,npm一定要配置国内镜像仓库, 否则会执行很慢, 另外, 执行过程中, 可能会报一些错, 这个可以暂不理会, 是由于nodejs版本造成的

坑 2

完成上述情况, 我们的确可以正常访问, 但当我们打开chrome的控制台, 去查看页面资源加载情况, 会出现

image

我们看到很多422的错误, 这里主要是/assets/webpack文件夹下的内容加载不了, 这个是由于rails里面的CSP安全策略, 不加载js, 不过我们可以通过配置nginx, 让/assets为静态站点目录, 即在nginx配置文件中加上


location /assets {    
    root /opt/gitlab/embedded/service/gitlab-rails/public;   
    index index.html;
}

这个时候, 我们的静态资源文件通过nginx去访问,rails仍然可以保留自己的安全策略

作者:殷临风

链接:https://www.jianshu.com/p/808fbf9d972f

來源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(GitLab本地搭建)