docker安装gitlab并测试提交
前言:因为gitlab镜像文件比较大,所以虚拟机在配置的时候应至少给4g内存,否则后续启动就后有问题,镜像大小大约在1~2GB。
docker安装
docker pull twang2218/gitlab-ce-zh:latest
dockers启动
docker run -d \
-p 4443:443 //https端口映射
#-p 8888:80 //http端口映射
-p 10000:10000
-p 2222:22 \ //ssh端口映射
--name gitlab-zh \ //容器名称
--hostname 192.168.1.108 \ //虚拟机地址
--restart always \
-v /mydata/gitlab-zh/config:/etc/gitlab \ //数据持久化保存
-v /mydata/gitlab-zh/logs:/var/log/gitlab \
-v /mydata/gitlab-zh/data:/var/opt/gitlab \
twang2218/gitlab-ce-zh:latest
gitlab第一次后启动注意事项
1.登录 gitlab
- 首次进入须初始化密码,要求大于8位,eg:12345678
- 使用用户名 root登录
2.创建组( group)
gitlab 里面有三类对象:组( group)、项目( project)和用户 (people)。
为了方便管理,我们应该基于组来创建项目。一个项目就是一个 git 的仓库。基于组创建项目 ,然后将用户设置合适的权限后加入到组里面。这样用户就有了组里面所有项目的对应权限。
3.将用户加入组
为了方便管理,需要将用户加入到对应的组里面。在组管理界面中,点击组的名称,进入组用户设置界面。将刚才创建的用户 “zhan” 加入到组 “swagger-learning”中,并且给他设置为 “Master” 角色。只有 “Master” 或者 “Owner” 角色才能推送 git 的更新。
4.创建项目(project)
增加 gitlab 组的时候,为了让项目让组里面的人都能访问,注意要将项目建立在组之下。
5.配置gitlab克隆地址
# 配置http协议所使用的访问地址也是【http克隆地址】,不加端口号默认为80
external_url 'http://192.168.1.108:10000'
##这里如果使用映射80端口出去,那么外层访问时ip:8888,但克隆端口默认80,如果在配置文件中修改80端口,那么默认的外层首页有访问不到,所以干脆直接映射另一个随便端口启动后在配置文件中属性external_url,配置好即可。
#配置ssh协议所使用的访问地址和端口【ssh克隆和地址】
gitlab_rails['gitlab_ssh_host'] = '192.168.1.108'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
6.重启容器
docker restart gitlab-zh
7.命令行访问
右击 “Git Bash Here” 进入 git 命令行环境。我们会从 swagger-learning 项目中看到该项目基于 http 协议的 clone 命令是:http://192.168.1.108::10000/learning/swgger-leaning.git
<html>
这种情况下会要求输入登录的用户名和密码。这里输入刚才创建的用户的用户名和密码即可。在使用前,需要用这个用户登录 gitlab 控制台修改一下初始密码才能使用。
</html>
==6.免密码登录==
上述那种方式通过 http 协议和 gitlab 进行通信,每次都要输入用户名和密码,非常不方便。用户可以设置通过 ssh 进行交互,将ssh key 加入到用户的 sshkey 设置列表中。
- 进入 git 的 bash 环境。执行下面的命令进入 ssh key 存储目录:
cd ~/.ssh
- 目录中 id_rsa.pub 是 ssh 访问的公钥。如果不存在则执行下面的命令生成,然后一路回车(-C 参数是你的邮箱地址):
ssh-keygen -t rsa -C '10564xx839@qq.com'
- 然后输入命令:
# ~表示用户目录,比如我的windows就是C:\Users\Administrator,并复制其中的内容
$ cat ~/.ssh/id_rsa.pub
-
打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框