1.gitlab镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新版本
[root@root /]# docker pull gitlab/gitlab-ce
2.运行gitlab镜像
docker run -d -p 443:443 -p 88:80 -p 2222:22 --name gitlab --restart always -v /dockerDateSet/gitlab/config:/etc/gitlab -v /dockerDateSet/gitlab/logs:/var/log/gitlab -v /dockerDateSet/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
说明:
-p 443:443:将http:443映射到外部端口443
-p 88:80:将web:80映射到外部端口88
-p 2222:22:将ssh:22映射到外部端口2222
--name gitlab: 运行容器名
--restart always: 自动重启
-v /dockerDateSet/gitlab/config:/etc/gitlab: 挂载目录,:分隔为两部分,冒号前为宿主机路径,冒号go
-v /dockerDateSet/gitlab/logs:/var/log/gitlab: 挂载目录
-v /dockerDateSet/gitlab/data:/var/opt/gitlab: 挂载目录
运行成功之后返回容器id。
访问:http://47.105.198.54:88
输入两次密码,这密码就是以后的登录密码了,点击按钮,然后输入默认的用户root
点击create a project
注意我们创建好的项目的clone地址,发现是跟我们的容器id是一样的
如果容器重启,这个id就会改动。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:
/dockerDateSet/gitlab/config/gitlab.rb
)gitlab.rb文件中所有配置都是注释的
[root@root config]# vim /dockerDateSet/gitlab/config/gitlab.rb
增加配置
- ip版本
external_url = 'http://47.105.198.54:88'
gitlab_rails['gitlab_ssh_host'] = '47.105.198.54'
# 此端口是run时22端口映射的2222端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222
- 域名版本
external_url = 'http://gongj.top:88'
gitlab_rails['gitlab_ssh_host'] = 'gongj.top'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
注:external_url在初始的gitlab.rb中是没有=号的
重启(选其一吧)
docker exec gitlab gitlab-ctl reconfigure
docker restart gitlab
不过在docker restart gitlab的时候可能会出现以下异常
重启docker服务后再启动容器
[root@root config]# systemctl restart docker
[root@root config]# docker start gitlab
上述还有http的clone路径还是容器id,这个就不解决了。在企业开发中是以ssh方式为主的。
这里再提一句,gitlab.yml在宿主机路径/dockerDateSet/gitlab/data/gitlab-rails/etc/gitlab.yml
,可能有小伙伴会有疑问,为什么不直接修改gitlab.yml,其中gitlab.yml已经讲了
翻译
该文件由gitlab-ctl管理。 手动更改将擦除! 要更改下面的内容,编辑/etc/gitlab/gitlab.rb并运行sudo gitlab-ctl reconfigure。
如果出现如下页面,请稍等后重试。
gitlab的安装以及基本配置结束了,下面讲讲的怎么使用。
上面已经讲过了登录已经参加项目,那就直接开始拉取项目。
配置ssh key
配置方式可以看我这篇文章:https://www.jianshu.com/p/6bc033293d04
gitlab拉取代码
1、点击projects->your projects
2、选择一个需要克隆的项目,点击
3、点击按钮复制ssh地址
4、在自己本地选择一个文件夹,然后右键选择Git Bash Here
5、执行clone命令
git clone 项目地址
6、提交代码
其他操作就不讲了,出现以下问题是因为你是第一次提交,需要配置签名
$ git config --global user.email "xxx@163.com"
Administrator@WIN-K117BNL4HSI MINGW64 /d/gongj/gitlab/demo1 (master)
$ git config --global user.name "nianq"
--global 代表全局的,当然这是可选参数,如果不写,作用域为当前项目。重新拉取新项目需要重新配置。
全局配置位置
推荐gitlab配置文章:https://www.cnblogs.com/h--d/p/10153647.html
参考文献:https://www.jianshu.com/p/080a962c35b6