云服务器搭建GitLab
因为暑期项目需要,Gitee,GitHub等多人协作的名额又少,所以选择了在自己的服务器上搭建了一个Gitlab。期间遇到了很多坑,在这里都记录下来。这里要特别感谢两篇博客,起到了极大的帮助。这里给出链接
搭建环境
服务器
ESC:阿里云学生机,1核,2G。
操作系统:Ubuntu 16.04 64位
需要工具
SSH工具
操作
安装
其实一开始照着给的第一篇博得那么做就可以了,这里简单给出命令,详情参考链接:
1. 安装一些依赖:
sudo apt-get install curl openssh-server ca-certificates postfix
2.安装GitLab
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
3.更改配置
vim /etc/gitlab/gitlab.rb
将external_url = 'http://git.example.com'修改为自己的域名地址:http://example.com,默认为80端口,如要使用其他端口后面加上端口号,如:http://127.0.0.1:8080
4.重置,过程可能会非常慢长,请静心等待。
sudo gitlab-ctl reconfigure
运行相关命令
-
启动:
sudo gitlab-ctl start
-
停止:
sudo gitlab-ctl stop
-
重启:
sudo gitlab-ctl restart
后记
安装之后,傻眼了。爆出了
502错误
,一般是因为GitLab运行需要消耗大量的内存。而我这可怜的小小的学生机架不住造,于是就出现了502。查看CPU占用100%,然后 for a long time。然后ssh也无法连接,我的博客也打不开了,我直接重启了。如果你要重启的话,要温柔。强制重启可能数据会丢失。
重启之后,阴差阳错的可以访问了,但是巨卡啊,过一会又502了,这可不行,然后就有下一步的操作:
解决GitLab搭建后卡顿的问题
这里就用到了开头给出的第二个链接,我也就列举一下命令吧,直接照做就可以。
+. 查看 swap 分区
cat /proc/swaps
如果只有标题栏,而查不出来数据,那就是没有swap分区。下面是解决方法:
1. 创建swap分区(有的同学可能是 /data/swap ,但我是/mnt/swap)
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
2. 通过mkswap命令将上面新建出的文件做成swap分区
mkswap /mnt/swap
3. 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
-. 查看参数
cat /proc/sys/vm/swappiness
-. 若是0设置参数
sysctl -w vm.swappiness=60
4. 启用分区
swapon /mnt/swap
echo “/mnt/swap swap swap defaults 0 0” >> /etc/fstab
5. 再次查看swap分区是否启动,有数据则说明设置成功了
cat /proc/swaps
邮件发送不成功
部署完了,嘚瑟嘚瑟。然后赶忙邀请成员,啧啧啧,群消息@了一堆人,然后都说邮箱并没有收到消息。哎,哎,哎。继续整。? ? ?
端口设置
这里给个链接吧,介绍邮件服务的端口:
邮件服务端口介绍
配置文件修改
在 /etc/gitlab/gitlab.rb中添加如下内容
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_user_name'] = "xxx@163.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
### 修改gitlab配置的发信人
gitlab_rails['gitlab_email_from'] = "xxx@163.com"
user["git_user_email"] = "xxx@163.com"
注意要查看安全组对应端口号是否打开。还有就是我这是照着网上搜到的进行配置,但是我自身配置过后更新重启并没有生效。然后添加过成员后,成员只要用相应的邮箱进行注册就会自动在组内。所以暂时没有管这些了。如果有知道的,还请指点。
使用DockerCompose搭建GitLab
环境准备
/usr/local下新建docker/目录,docker下新建gitlab目录。进入 gitlab目录,新建 docker-compose.yml文件。文件内容如下:
docker.compose.yml文件
version: '3'
services:
gitlab:
image: 'twang2218/gitlab-ce-zh'
restart: always
hostname: '用自己主机的ip'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://用自己主机的ip:8099'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.aliyun.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "example@163.com" #用自己的aliyun邮箱
gitlab_rails['smtp_password'] = "这是密码"
gitlab_rails['smtp_domain'] = "aliyun.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'example@163.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
unicorn['port'] = 8099
nginx['listen_port'] = 8099
ports:
- '8099:8099'
- '443:443'
- '2222:22'
volumes:
- /usr/local/docker/gitlab/config:/etc/gitlab
- /usr/local/docker/gitlab/data:/var/opt/gitlab
- /usr/local/docker/gitlab/logs:/var/log/gitlab
启动
docker-compose up -d
最后
我服务器在重启之后,应该是没有启动指定位置下的nginx.conf 文件,所以造成了有的代理转发失效。等到重启的时候,报错,显示端口被占用。然后,丧心病狂,进程杀不死,就是GitLab的进程,就是杀不死啊。。。。然后,找了好多种方法,最后想到,把GitLab关了不就完了,然后问题解决。?,感觉自己就是个沙雕。。
最后祝愿各位同学一步到位,不折腾。也再次感谢其他博客的帮助!!!