docker 安装gitlab以及使用
一、安装及配置
1.gitlab镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
![](http://upload-images.jianshu.io/upload_images/15087669-c866f117b53fadf8.png?imageMogr2/auto-orient/strip|imageView2/2/w/565/format/webp)
2.运行gitlab镜像
$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
运行成功后出现一串字符串
![](http://upload-images.jianshu.io/upload_images/15087669-5818ed22c0bc1ee7.png?imageMogr2/auto-orient/strip|imageView2/2/w/467/format/webp)
3.配置
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。
# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.199.231'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
![](http://upload-images.jianshu.io/upload_images/15087669-a480f0de6409620a.png?imageMogr2/auto-orient/strip|imageView2/2/w/385/format/webp)
# 重启gitlab容器
$ docker restart gitlab
此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头
打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)
4.创建一个项目
第一次进入要输入新的root用户密码,设置好之后确定就行
![](http://upload-images.jianshu.io/upload_images/15087669-6b04cfddeccf17bf.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
下面我们就可以新建一个项目了,点击Create a project
![](http://upload-images.jianshu.io/upload_images/15087669-2a40551dc13c2826.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
创建完成后:
![](http://upload-images.jianshu.io/upload_images/15087669-0dd085723ef61677.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
二、用户使用
1.下载git.exe
双击git.exe安装git(一直点下一步,直到完成)
点击电脑桌面空白地方右键看到如下两行即安装成功
![](http://upload-images.jianshu.io/upload_images/15087669-7bbdee06b7ca7711.png?imageMogr2/auto-orient/strip|imageView2/2/w/321/format/webp)
2.登录gitlab网页
url:http://192.168.1.111
填写账号密码登录
![](http://upload-images.jianshu.io/upload_images/15087669-249a984d541801a1.png?imageMogr2/auto-orient/strip|imageView2/2/w/478/format/webp)
3.设置ssh
1.打开本地git bash,使用如下命令生成ssh公钥和私钥对
$ ssh-keygen -t rsa -C 'xxx@xxx.com'
然后一路回车(-C 参数是你的邮箱地址)
![](http://upload-images.jianshu.io/upload_images/15087669-40be69316850b690.png?imageMogr2/auto-orient/strip|imageView2/2/w/579/format/webp)
2.然后输入命令:
# ~表示用户目录,比如我的windows就是C:UsersAdministrator,并复制其中的内容
$ cat ~/.ssh/id_rsa.pub
![](http://upload-images.jianshu.io/upload_images/15087669-b71993bc58477957.png?imageMogr2/auto-orient/strip|imageView2/2/w/564/format/webp)
3.打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框
![](http://upload-images.jianshu.io/upload_images/15087669-d14c5051911fe20c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
![](http://upload-images.jianshu.io/upload_images/15087669-f7319dc3a9d83828.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
4.从gitlab克隆代码
1.回到gitlab页面点击projects->your projects
![](http://upload-images.jianshu.io/upload_images/15087669-0105a84b02d1ed9e.png?imageMogr2/auto-orient/strip|imageView2/2/w/479/format/webp)
2.选择一个需要克隆的项目,进入
![](http://upload-images.jianshu.io/upload_images/15087669-7a7f3af7efcff81c.png?imageMogr2/auto-orient/strip|imageView2/2/w/734/format/webp)
3.点击按钮复制地址
![](http://upload-images.jianshu.io/upload_images/15087669-27e842b185a62e69.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
4.新建一个文件夹,我在这里在我的电脑D盘下新建project文件夹
![](http://upload-images.jianshu.io/upload_images/15087669-6c9571d4d0a5d321.png?imageMogr2/auto-orient/strip|imageView2/2/w/171/format/webp)
5.进入projects文件夹右键选择->Git Bash Here
![](http://upload-images.jianshu.io/upload_images/15087669-e59886b042c02edf.png?imageMogr2/auto-orient/strip|imageView2/2/w/435/format/webp)
6.设置用户名和邮箱
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"
![](http://upload-images.jianshu.io/upload_images/15087669-9592daf5642e3c11.png?imageMogr2/auto-orient/strip|imageView2/2/w/370/format/webp)
7.克隆项目
$ git clone 项目地址
![](http://upload-images.jianshu.io/upload_images/15087669-dc8bafb214fa578e.png?imageMogr2/auto-orient/strip|imageView2/2/w/454/format/webp)
8.查看projects文件夹,项目已经克隆下来了
![](http://upload-images.jianshu.io/upload_images/15087669-94ec492febe71420.png?imageMogr2/auto-orient/strip|imageView2/2/w/634/format/webp)
5.提交代码到gitlab
1.基于以上步骤,在克隆的项目文件夹下新增一个测试文件
![](http://upload-images.jianshu.io/upload_images/15087669-c230295d84a79064.png?imageMogr2/auto-orient/strip|imageView2/2/w/651/format/webp)
2.查看同步状态
在项目文件夹下右键点击->Git Bash Here
![](http://upload-images.jianshu.io/upload_images/15087669-1fd767543b22d445.png?imageMogr2/auto-orient/strip|imageView2/2/w/445/format/webp)
输入
$ git status
![](http://upload-images.jianshu.io/upload_images/15087669-364b83d323ceb46b.png?imageMogr2/auto-orient/strip|imageView2/2/w/562/format/webp)
可以看到红色部分有需要提交的文件
3.提交代码
输入
$ git add 测试提交的文件.txt
(“git add“后加“.”则添加全部文件,也可以加"*.txt"表示添加全部需要提交的txt文件 )
![](http://upload-images.jianshu.io/upload_images/15087669-2e3e95ecf96cc668.png?imageMogr2/auto-orient/strip|imageView2/2/w/558/format/webp)
然后输入以下命令提交并添加提交信息
$ git commit -m "message"
![](http://upload-images.jianshu.io/upload_images/15087669-6d689c385f30fe33.png?imageMogr2/auto-orient/strip|imageView2/2/w/560/format/webp)
最后输出以下命令提交到gitlab
$ git push origin master
![](http://upload-images.jianshu.io/upload_images/15087669-889169ad267f2997.png?imageMogr2/auto-orient/strip|imageView2/2/w/510/format/webp)
提交完成啦
再回到gitlab上看该项目就可以看到多了一个txt测试文件