Ubuntu 18.04 使用Docker镜像方式安装GitLab
- 关于GitLab
- 确保已经安装好Docker
- 运行gitlab-ee镜像(第一次执行会先下载镜像)
- 映射目录的用途
- 配置GitLab
- 访问GitLab服务
- 使用不同的端口访问GitLab
- 使用GitLab创建一个项目
《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已经在项目中了