介绍:GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。
1. 下载gitlab镜像到本地
docker pull gitlab/gitlab-ce:latest
2. 启动gitlab容器
docker run \
-itd \
-p 8050:80 \
-p 8051:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
参数说明:
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端
-d:后台运行容器,并返回容器ID,也即启动守护式容器
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab 设置容器名称为gitlab
3. 修改gitlab配置
3.1 修改ssh配置
在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id,因此需要配置ssh的host和port,
配置需要进入容器内部修改,而不是在宿主机器上修改
进入容器内部docker exec -it gitlab /bin/bash
修改gitlab.rb :vi /etc/gitlab/gitlab.rb
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.7.7'
#ssh主机ip,内网IP
gitlab_rails['gitlab_ssh_host'] = '192.168.7.7'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 8051
external_url是 暴露出去的http://ip:port,ip一定要和gitlab.yml文件配置的相同。
3.2 配置gitlab.yml
修改http和ssh配置vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 192.168.7.7
port: 80
https: false
重启容器并退出
gitlab-ctl restart
exit
4 访问gitlab web服务
4.1 验证web服务
启动服务需要一点时间。等启动完后打开浏览器 输入http://192.168.7.7:8050/
4.2 修改超管(root)密码
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入gitlab控制台(可能需要等十多秒)
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为qamypd234
user.password='qamypd234'
# 保存
user.save!
# 退出
exit