利用docker和gitLab搭建git私有服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qianchenglenger/article/details/80703052

随着Git代码管理工具的兴起,我们很多时候需要用到自己的git私有服务器,从而做到防止代码泄露等。gitLab为我们提供了一种简便的方式,使我们可以快速搭建自己的Git私有服务器

基础条件

本文主要是在一台装有ubuntu系统的服务器上安装gitLab

安装docker

此处主要参考了菜鸟教程 Ubuntu Docker 安装

  1. 查看并确定ubuntu内核版本高于3.10

    uname -r
  2. 使用脚本安装docker

    wget -qO- https://get.docker.com/ | sh
  3. 安装完成之后,会提示:

    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:
    
       sudo usermod -aG docker xxx
    Remember that you will have to log out and back in for this to take effect!  
  4. 按照提示,执行对应的命令sudo usermod -aG docker xxx即可,为docker用户赋予权限,然后重新退出登录。

  5. 启动docker服务并查看状态
sudo service docker start
sudo service docker status

安装gitlab

  1. 克隆gitlab-ce

    sudo docker pull gitlab/gitlab-ce:latest
  2. 创建docker container
    注意,这里因为作者的服务器80端口等已经被占用,所以,对端口进行了映射

    sudo docker run -d -p 8443:443 -p 8081:80 -p 8022:22 \
    --name gitlab --restart always \
    --volume /home/xxx/dockerData/gitlab/config:/etc/gitlab \
    --volume /home/xxx/dockerData/gitlab/logs:/var/log/gitlab \
    --volume /home/xxx/dockerData/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

    这里,’/home/xxx/dockerData/gitlab’是映射到物理机上的卷的路径。可以根据需要自定义。
    另外,注意映射端口时,避免使用8080端口,因为8080在docker内部被Unicorn占用,这里可以找到相关材料。

  3. 访问并测试
    首次启动比较慢,所以,需要稍等一会儿,就可以在对应http://xxx.xxx.xxx.xxx:8081 链接中访问到页面。初次使用时,需要我们创建默认的管理员密码。当登录之后,创建项目,突然发现,坏了。
    在项目clone的路径中,本来应该是:8081的地方,变成了主机名。

  4. 修改配置
    为了解决这个问题,我们需要修改external_url,

    sudo docker exec -it gitlab /bin/bash
    vim /etc/gitlab/gitlab.rb

    修改external_url为

    external_url "http://xxx.xxx.xxx.xxx:8081"

    这里,请将”xxx.xxx.xxx.xxx”变成为自己的主机ip
    运行gitlab-ctl使配置生效

    gitlab-ctl reconfigure
  5. 再次测试
    再次访问http://xxx.xxx.xxx.xxx:8081,发现,访问不了了。。
    不得不说,我感觉这是一个bug,翻了半天文档,没找到对应的说明。
    解决方法:
    修改external_url时,container内部的项目端口竟然也被直接转到了8081端口上,而原来我们映射的端口时8081:80,此时,80端口上没东西了,造成访问不了了。所以,删掉这个容器,重新创建

    sudo docker stop gitlab
    sudo docker rm gitlab
    sudo docker run -d -p 8443:443 -p 8081:8081 -p 8022:22 \
    --name gitlab --restart always \
    --volume /home/xxx/dockerData/gitlab/config:/etc/gitlab \
    --volume /home/xxx/dockerData/gitlab/logs:/var/log/gitlab \
    --volume /home/xxx/dockerData/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

    注意,此处将8081仍然映射到了8081端口上。ps,这也是为什么上面不让用8080端口的,因为如果用8080,会造成内部端口冲突。
    做好这一切之后,重新访问http://xxx.xxx.xxx.xxx:8081,突然感觉世界平静了好多,这里截一张正常的图,以示庆贺。
    docker安装gitlab

参考资料

Ubuntu Docker 安装
用Docker安装Gitlab
Expose GitLab on different ports
Configuring the external URL for GitLab
利用GitLab Docker images安装GitLab(填坑)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页