当前位置: > 其它学习 > GitLab >

Ubuntu 18.04 使用Docker镜像方式安装GitLab

时间:2019-04-09 13:58来源:linux.it.net.cn 作者:IT
Ubuntu 18.04 使用Docker镜像方式安装GitLab
关于GitLab
确保已经安装好Docker
运行gitlab-ee镜像(第一次执行会先下载镜像)
映射目录的用途
配置GitLab
访问GitLab服务
使用不同的端口访问GitLab
使用GitLab创建一个项目
关于GitLab
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
 
GitLab官方推荐使用Omnibus package的方式安装,本文使用Docker镜像的方式安装。
 
Gitlab有两个版本:
 
Community Edition 社区版
Enterprise Edition 企业版
企业版比社区版功能更丰富,但需要授权码,如果没有授权码的情况下使用企业版相当于使用社区版
确保已经安装好Docker
关于Docker的安装,请参考《Ubuntu 18.04 安装Docker CE》
 
运行gitlab-ee镜像(第一次执行会先下载镜像)
$ sudo docker run --detach \
--hostname gitlab-server \
--publish 443:443 --publish 80:80 --publish 22: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-ee:latest
 


 
参数 说明
hostname gitlab-server 设置gitlab容器的主机名为 gitlab-server
publish 443:443 设置宿主机与docker容器的端口映射(如宿主端口被占用请更换别的端口,参考本文下面的内容)
name gitlab 设置容器的名称为gitlab(只是一个标识,可随意指定)
restart always 在容器退出时总是重启容器
volume /srv/gitlab/config:/etc/gitlab 将本地目录与容器内的目录映射
映射目录的用途
本地目录 容器目录 用途
/srv/gitlab/data /var/opt/gitlab 存储应用数据
/srv/gitlab/logs /var/log/gitlab 存储日志数据
/srv/gitlab/config /etc/gitlab 存储配置文件
配置GitLab
gitlab-ee容器使用的是官方Omnibus GitLab包,所有配置都在一个文件中:/etc/gitlab/gitlab.rb
 
编辑gitlab.rb文件
$ sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb ##命令一


 
由于本地目录与容器内的目录建立了映射,直接修改本地文件也是一样的,下面的指令效果跟上面的指令一样:
$ sudo vi /srv/gitlab/config/gitlab.rb ##命令二


 
命令一相当于链接到容器内的shell,进入交互模式,执行的是容器内的指令:编辑gitlab.rb文件
在打开的窗口中将external_url设置为:http://192.168.199.175(该ip是宿主机的ip,根据自己主机上的ip更改)
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.199.175'
 


 
编辑完成后输入:wq退出vi编辑器窗口
重启gitlab
$ sudo docker restart gitlab


 
访问GitLab服务
用浏览器打开 http://192.168.199.175/ ,第一次打开需要设置root密码,如下图:

 
使用root用户登录并设置GitLab,比如:创建项目,创建组,添加用户等:


 
使用不同的端口访问GitLab
如果宿主机的80端口被占用,那么我们可以修改映射的端口,将其他端口暴露为GitLab服务
 
停止当前的gitlab容器
$ sudo docker stop gitlab

 
删除gitlab容器
$ sudo docker rm gitlab
 


使用其他端口重新启动新的gitlab容器
$ sudo docker run --detach \
--hostname gitlab-server \
--publish 9090:9090 --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-ee:latest
 


 
此时访问GitLab服务的地址变为:http://192.168.199.175:9090,在访问之前还需要设置external_url 为:http://192.168.199.175:9090
注意:一旦在external_url最后加上端口号,容器内的nginx就会监听这个端口,也就意味着宿主机和容器的映射端口(–publish 9090:9090)必须与external_url的端口一样,都是9090
设置external_url及ssh_port
$ sudo vi /srv/gitlab/config/gitlab.rb

 
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.199.175:9090'
 


 
### GitLab Shell settings for GitLab
gitlab_rails['gitlab_shell_ssh_port'] = 8022
 

 
重启gitlab容器使设置生效
$ sudo docker restart gitlab


 
现在打开 http://192.168.199.175:9090 就能正常访问了,这里192.168.199.175这个ip是宿主机的ip
使用GitLab创建一个项目
打开http://192.168.199.175:9090,设置root账户并登录

点击New user按钮创建一个用户


 
用户创建完成后点击右上角Edit按钮设置用户的密码


 
退出root用户,用刚刚创建的用户登录
点击Create a group 创建一个组

 
点击New project 按钮创建一个项目
复制项目地址,并用git客户端clone

 
$ git clone http://192.168.199.175:9090/groupone/example-project.git


 
执行上面的命令会要求输入用户名密码,按照要求输入,接着执行下面的指令
$ cd example-project
$ echo '这是一个通过gitlab创建的项目' > README.md
$ git add README.md
$ git commit -m "add README"
$ git push -u origin master
 

 
重新回到GitLab的项目详情页面,可以看到刚才提交的README.md已经在项目中了
 


(责任编辑:IT)
------分隔线----------------------------