-
拉取gitlab镜像
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
-
在宿主机创建挂载文件目录
· linux:在宿主机器 创建 存储 gitlab 相关文件的文件夹
# 切换root用户
$ su root
# 创建文件夹
$ mkdir /myDocker
# 修改文件夹权限
$ chown -R [user] /myDocker
# 退出root用户
$ exit
# 以下非root用户操作
$ cd /mydocker
$ mkdir config
$ mkdir logs
$ mkdir data
· mac:系统不建议挂载根目录系统文件,所以在用户目录下创建挂载文件夹
# 使用非root用户
$ cd ~
# 创建文件夹
$ mkdir myDocker
$ cd mydocker
$ mkdir config
$ mkdir logs
$ mkdir data
-
运行
pass:以mac操作系统进行
· 第一种:run运行
$ docker run -d -p 8443:443 -p 8090:80 -p 222:22 --name gitlab --restart always -v /Users/xxx/myDocker/gitlab/config:/etc/gitlab -v /Users/xxx/myDocker/gitlab/logs:/var/log/gitlab -v /Users/xxx/myDocker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
· 第二种:docker-compose 运行。上述运行方式麻烦,需要记住一长串的运行参数;使用docker-compose 运行,可配置运行参数,灵活方便,最主要的是可运行一系列容器。
把上述运行参数转成docker-compose.yml文件如下
version: '3'
services:
gitlab:
ports:
- "8443:443"
- "8090:80"
- "222:22"
volumes:
- glConf:/etc/gitlab
- glLogs:/var/log/gitlab
- glData:/var/opt/gitlab
volumes:
glConf:/Users/xxx/myDocker/gitlab/config
glLogs:/Users/xxx/myDocker/gitlab/logs
glData:/Users/xxx/myDocker/gitlab/data
· error:启动后一直访问映射端口:8090,访问不到,查看日志
$ docker logs -f gitlab
错误如下:分析是项目存储目录权限问
================================================================================
Error executing action `create` on resource 'storage_directory[/var/opt/gitlab/git-data/repositories]'
================================================================================
解决一:进入容器,更改文件夹权限
$ chmod 2770 /var/opt/gitlab/git-data/repositories
$ gitlab-ctl reconfigure
$ gitlab-ctl restart
我这不知道什么原因进不去启动失败的gitlab容器,所以采取如下解决方式。
解决二:更改数据存储目录
$ vim gitlab/conf/gitlab.rb
修改 git_data_dirs 如下:
git_data_dirs({
"default" => {
# "path" => "/mnt/nfs-01/git-data"
"path" => "/data/gitlab"
}
})
解决后,重启
$ docker restart gitlab
访问ip:8090,成功!登陆页面首先需要修改密码
-
初识 gitlab
· 注册,我的注册信息是:用户名{gitlab},密码{12345678} --> 登陆如下
· 自行安装git,生成git密匙,添加到 gitlab
$ ls ~/.ssh
有则直接使用,不存在则生成,输入下面命令,一路回车键
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "your_email@youremail.com"
· 创建组-->group
· 创建项目-->project
创建后,发现 clone 的 IP 如下不是我们想要的
· 修改 IP
# 进入容器
$ docker exec -it gitlab /bin/bash
# 更改 IP
vim /etc/gitlab/gitlab.rb
重启容器即可
·创建成功,可用如下命令,克隆到本机,至此 gitlab 简单使用告一断落
· 获取/修改超级管理员root的密码
# 进入 gitlab 容器
$ docker exec -it gitlab /bin/bash
# 切换目录
$ cd /opt/gitlab/bin
开始初始化密码 -> 在此目录下执行命令
$ gitlab-rails console production
# 通过如下命令来查找与切换账号(User.all 可以查看所有用户)
u=User.where(id:1).first
# 我在这里设置密码为12345678
u.password='12345678'
# 确认密码
u.password_confirmation='12345678'
# 保存密码
u.save!
看到上图 true -> 修改成功
# 退出
exit
然后就可以用 root/12345678 登陆,做最高权限的操作了.......