一、安装及配置
1.gitlab镜像拉取
gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
拉取镜像效果图
$ sudo docker pull gitlab/gitlab-ce:latest
[sudo] password for yanzuoguang:
latest: Pulling from gitlab/gitlab-ce
e80174c8b43b: Pull complete
d1072db285cc: Pull complete
858453671e67: Pull complete
3d07b1124f98: Pull complete
43d9dea843dd: Pull complete
cab5a34e8fb7: Pull complete
635509edca6d: Pull complete
f91b4dfa0ce0: Pull complete
a3ea8e47245c: Pull complete
e6ad628e595f: Pull complete
Digest: sha256:bbd8d61fbf66321e454225001e67ff5bf19ef9f64c1f26210ea4479130cc4e5d
Status: Downloaded newer image for gitlab/gitlab-ce:latest
2.运行gitlab镜像
$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
- -d:后台运行
- -p:将容器内部端口向外映射
- --name:命名容器名称
- -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录 运行成功后出现一串字符串,运行成功效果图:
$ sudo docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
b0d33856429f06e0eaf6bd92372902fe14fec4c0fff00764d8fe6bd87b21acd8
3.配置
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。
# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb
修改gitlab.rb文件
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
重启gitlab容器
$ docker restart gitlab
此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头 打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)
gitlab配置域名访问
安装Gitlab完成后:Gitlab默认Nginx80端口,如果机器未占有80端口,可以直接替换成域名,解析后就可以直接访问。
grep "^external_url" /etc/gitlab/gitlab.rb #查看当前绑定的域名或者IP
vim /etc/gitlab/gitlab.rb #打开配置文件
# external_url 'http://192.168.174.131' #替换 #修改成域名访问
external_url 'http://gitlab.inewmaker.com'
gitlab-ctl reconfigure #重新跑一下配置
如果机器80端口以占有,需要修改gitlab端口。
grep "'listen_port" /etc/gitlab/gitlab.rb #查看默认端口
vim /etc/gitlab/gitlab.rb #打开配置文件
nginx['listen_port'] = 800 #找到取消注释,修改端口
gitlab-ctl reconfigure #重新跑一下配置
由于更改端口,域名解析不到。提供方式使用云服务中的负载均衡。 首先各平台的安全组放通端口 "800" ,
- 注:需要使用Gitlab邮箱服务,腾讯云需要先解封25端口
- 注:使用云主机,云平台的负载一般都是绑定自家的云主机的。
- 阿里云设置监听,前端"80",后端"800",就可以了。
Gitlab配置HTTPS
注:使用的Gitlab默认"80"端口
阿里云免费HTTPS证书申请
mkdir /etc/gitlab/ssl #把申请的证书放在这里
vim /etc/gitlab/gitlab.rb #打开配置文件
external_url 'external_url 'https://gitlab.inewmaker.com' # 注:一定要HTTPS
nginx['redirect_http_to_https']= true #取消注释改为 true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.pem" #放置对应的证书密钥
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key" #放置对应的证书密钥
gitlab-ctl reconfigure #使配置生效
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf #设置https
配置一般自动生成把sll端口 "80"换成"443"
gitlab-ctl restart # 使配置生效 #
最后网页访问:
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/16 03:09