四、 docker搭建gitlab 私服

环境描述

因为Git操作起来是非常麻烦的,所以特增加gitlab 优势如下:

GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表,当通过SSH访问GitLab Server时,GitLab Shell会:

  • 限制执行预定义好的Git命令(git push,git pull,git annex)
  • 调用GitLab Rails API检查权限
  • 执行pre-receive钩子(在企业版中叫做Git钩子)
  • 执行用户请求的动作,处理GitLab的post-receive动作
  • 处理自定义的post-receive动作

当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码:

如果是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作

如果是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:

  • 调用GitLab Rails API 检查权限
  • 执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
  • 执行你请求的动作
  • 处理GitLab的post-receive动作

2 确保安装顺利,linux先关闭selinux服务,否则容器内部可能权限不足

vi /etc/selinux/config
-------------------------------
SELINUX=enforcing? #
注释掉
SELINUXTYPE=targeted #
注释掉
SELINUX=disabled #
增加
:wq! #
保存退出
-------------------------------
setenforce 0 #
使配置立即生效

3 搜索和下载gitlab镜像

#
搜索镜像
docker search gitlab
#
下载镜像
sudo docker pull gitlab/gitlab-ce:latest
#
本人测试的版本是:
sudo docker pull gitlab/gitlab-ce:11.3.6-ce.0

4 创建docker中的网络

docker network create gitlab_net

5 使用镜像创建容器,并且使重要数据外部挂载到宿主机

docker run --name='gitlab' -d \
--net=gitlab_net \
--publish 443:443 --publish 80:80 --publish 22:22 \
--restart always \
--volume ~/docker/gitlab/config:/etc/gitlab \
--volume ~/docker/gitlab/logs:/var/log/gitlab \
--volume ~/docker/gitlab/data:/var/opt/gitlab \
--privileged=true \
gitlab/gitlab-ce:11.3.6-ce.0
## 
查看容器是否运行起来
docker ps | grep gitlab

参数解析

1)http端口使用 80
2).网络使用 gitlab_net网络
3).将容器内部 /etc/gitlab,/var/log/gitlab,/var/opt/gitlab - 挂载到宿主机的 /root/docker/gitlab/config,logs,data 下,防止容器被删除数据丢失
4).privileged=true 使用特权,怕什么地方权限不足,安装不顺

5)./root/docker/gitlab下的config,logs,data没有的话,创建容器

会一并创建

6)git docker中的端口号也是22记的与外面的映射最好也是22,这样后期访问还方便一些

6 修改配置文件中的访问域名

vim ~/docker/gitlab/config/gitlab.rb
...
其实就是
/root/docker/gitlab/config/gitlab.rb
external_url 'http://gitlab.youni.com/'
#
用户访问所使用的
URL
,域名或者
IP
地址
...

7 打开浏览器看成效

浏览器输入 http://gitlab.youni.com/ 进行访问,第一次登陆需要修改密码
这样子就安装OK了,输入账号密码进行注册

如果上面界面无法显示直接访问下面地址进行初始密码修改

http:// gitlab.youni.com /users/password

修改完后用户密码登陆用户为root 密码为设置的密码

1)创建组:

2)创建用户:

3)用户授权

4)创建project

5)阻止用户自动注册

将红框中去掉

6)分配ssh

7)常见问题

1、访问浏览器被拒绝,不要慌 使用 docker logs gitlab 查看日志,看报什么错,进行解决
2、访问返回502,一般情况下是端口冲突
修改gitlab.rb文件,设置端口,重启容器,稍等一会访问

#
编辑文件
vi /root/docker/gitlab/config/gitlab.rb
#
找到
 unicorn['port'] = 80
的地方,修改为不会被占用的端口
unicorn['port'] = 8080
#
保存
:wq!
#
重启容器
 
docker restart gitlab

3、访问比较缓慢
因为镜像就有一个多G,每次启动容器,重启,需要花一段时间等待。
4、访问还是502
看看CPU占用率,电脑容量,有些情况是因为CPU、内存耗尽导致,如果我能否正常启动请先把
gitlab.rb文件下external_url 'xxx' 注释掉或做更改变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值