Ubuntu 18.04 使用Docker镜像方式安装GitLab
Ubuntu 18.04 使用Docker镜像方式安装GitLab关于GitLab确保已经安装好Docker运行gitlab-ce镜像(第一次执行会先下载镜像)映射目录用途配置GitLab关于GitLabGitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。G...
·
Ubuntu 18.04 使用Docker镜像方式安装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已经在项目中了
更多推荐
已为社区贡献1条内容
所有评论(0)