Docker安装及配置GitLab
GitLab
和GitHub
一样,都是基于Git
开发了一些功能,然后商业化的产品,它俩唯一的不同之处在于GitLab
可以私有化部署,这也就导致受到了很多企业的青睐。
本篇文章主要介绍如何以Docker
化的方式安装GitLab,以及简单的配置,使用的是GitLab-CE社区版
,操作系统CentOS 7
。
环境
- 系统更新并重启
$ sudo yum update -y
$ sudo reboot
- 环境查看
$ hostname
gitlab
$ uname -a
Linux gitlab 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ whoami
ansheng
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ getenforce
Disabled
$ sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
安装
- 安装docker
$ curl -sSL https://get.docker.com/ | sudo sh
$ sudo systemctl enable --now docker
- 运行GitLab
$ sudo docker run --detach \
--hostname git.ansheng.me \
--publish 443:443 \
--publish 80:80 \
--publish 8022: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
上面的配置中,请根据自己的实际情况进行调整,GitLab产生的数据都将存储在/srv/gitlab/
目录下,如果不需要SSL是不用开放443端口的,因为系统本身占用了22端口,所以我把默认的22改成了8022
。
- 数据目录介绍
本地位置 | 容器位置 | 作用 |
---|---|---|
/srv/gitlab/data | /var/opt/gitlab | 数据 |
/srv/gitlab/logs | /var/log/gitlab | 日志 |
/srv/gitlab/config | /etc/gitlab | 配置文件 |
- 访问测试
启动之后可能需要很长时间才能运行起来,你可以通过sudo docker logs -f gitlab
来跟踪日志,第一次访问的时候系统会要求设置管理员密码
设置完密码之后进行登陆,默认的用户名是root
登陆成功之后,如下是默认的首页,至此,安装部分以及完成。
创建一个项目试试
接着上图,我们点击首页上面的Create a project
来创建一个项目
如上,我们创建了一个私有的项目,项目命名为caca
,隶属人root
下,我这里只是作为演示,生产环境中是不会使用root用户的,毕竟不太安全,创建完成之后会进入项目首页,如下:
然后我们点击右上角的Clone,尝试把项目下载下来
复制Clone with SSH
下的指令git clone ssh://[email protected]/root/caca.git
,这条指令默认使用的是22端口,但是我们在运行gitlab时指定的端口是8022,所以我们还需要进行一些配置才能够正确的clone项目。
配置
容器使用的是官方Omnibus GitLab
软件包,配置文件默认在/etc/gitlab/gitlab.rb
中,若要修改配置,我们首先需要进入容器
$ sudo docker exec -it gitlab /bin/bash
root@git:/#
- 基本的配置
$ vim /etc/gitlab/gitlab.rb
# 默认使用的是22端口,我们需要更改为8022
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# 如果你更换了域名,需要将下面的配置改为新域名,这里不需要更改
# external_url 'http://newgit.ansheng.me'
当然你也可以编辑
/srv/gitlab/config/gitlab.rb
这个配置文件
然后退出并重启容器使配置生效
$ sudo docker restart gitlab
再次刷新页面,复制Clone with SSH
链接,发现端口以及改成了8022
然后你就可以愉快的把项目clone
到本地玩耍了!
- 配置邮件
邮件还是挺重要的,修改密码,消息通知等都会用到邮件,若要配置邮件,进入gitlab容器,然后打开配置文件
$ vim /etc/gitlab/gitlab.rb
# 增加如下配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "[email protected]"
# 这里的密码是应用专用密码,不是你登陆gmail的密码
gitlab_rails['smtp_password'] = "xxxx"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
配置修改完之后需要reconfig下,执行如下指令
$ gitlab-ctl reconfigure
然后进入gitlab的console来发送一封测试邮件
$ gitlab-rails console
Notify.test_email('[email protected]', 'Message Subject', 'Message Body').deliver_now
打开你的邮箱,你就可以收到如下的测试邮件
- 关闭注册
在登陆的时候不知道你有没有发现,旁边还有一个注册栏
作为一个私有的git,有时我们是不希望别人进行注册的,所以我们需要关闭注册功能,若要添加用户,只能让管理员手动添加。
关闭注册功能需要使用root用户,以root用户登陆之后执行如下操作
- 点击顶部栏的
Admin Area
; - 点击左侧栏的
Settings
; - 找到
Sign-up Restrictions
设置; - 取消勾选
Sign-up enabled
并点击下方的保存;
最后再次打开你的登陆页面就会发现已经没有注册功能了
更新
GitLab更新还是挺勤快的….,还是使用新版本吧
- 停止正在运行的容器
$ sudo docker stop gitlab
- 删除现有容器
$ sudo docker rm gitlab
- 拉取最新的image
$ sudo docker pull gitlab/gitlab-ce:latest
- 使用先前指定的选项再次创建容器
$ sudo docker run --detach \
--hostname git.ansheng.me \
--publish 443:443 \
--publish 80:80 \
--publish 8022: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
然后经过漫长的等待,再次打开会发现版本已经是最新的了,然后打开顶部栏的Admin Area
,有一个栏目Components,会显示你当前gitlab的组件版本
当然我们刚刚升级完,肯定是最新的咯
参考文献
相关说明:
1、VIP会员无限制任意下载,免积分。立即前往开通>>
2、下载积分可通过日常 签到、绑定邮箱 以及 积分兑换 等途径获得!
3、本站资源大多存储在云盘,如出现链接失效请评论反馈,如有密码,均为:www.ipipn.com。
4、所有站内资源仅供学习交流使用。未经原版权作者许可,禁止用于任何商业环境,否则后果自负。为尊重作者版权,请购买正版作品。
5、站内资源来源于网络公开发表文件或网友分享,如侵犯您的权益,请联系管理员处理。
6、本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
7、源码、模板等资源会随着技术、坏境的升级而存在部分问题,还请慎重选择。
PS.源码均收集自网络,如有侵犯阁下权益,请发信件至: [email protected] .
源站网 » Docker安装及配置GitLab