zoukankan      html  css  js  c++  java
  • docker安装配置GitLab

      这两天公司买了台新阿里云服务器, 在其中搭建了docker, redis, jdk, springboot项目. docker搭建了GitLab.  自己也是百度搜索查看一些博客搭建的. 网上博客七门八路,什么的都有, 还是写篇博客记录记录吧, 最起码是自己搭建过来的, 以后再重新搭建,直接拿过来用就行了

      若是服务器中搭建docker的话, 最好参考域名服务商(阿里云或腾讯云等)的官方文档.  进入阿里云---> 文档---> 云服务器ECS---> 建站教程 ---> 搭建应用---> 搭建docker 

    获取镜像

    1、方法一

    docker pull beginor/gitlab-ce:11.0.1-ce.0

    2、方法二
      如果服务器网路不好或者pull不下来镜像,只能在其它网路比较好的机器上pull下来镜像,导出成一个文件,
    再下载上传到网路不好的机器上,然后再从文件中导出来,这样在网络不好的机器上也能使用docker镜像了。

    运行

    1、通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

    mkdir -p /mnt/gitlab/etc
    mkdir -p /mnt/gitlab/log
    mkdir -p /mnt/gitlab/data

    2、准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略,
    因为这样可以手工停止容器, 方便维护。

    完整的运行命令如下:

    docker run 
        --detach 
        --publish 8443:443 
        --publish 8090:80 
        --name gitlab 
        --restart unless-stopped 
        -v /mnt/gitlab/etc:/etc/gitlab 
        -v /mnt/gitlab/log:/var/log/gitlab 
        -v /mnt/gitlab/data:/var/opt/gitlab 
        beginor/gitlab-ce:11.0.1-ce.0

     配置GitLab主机名

    1、修改/mnt/gitlab/etc/gitlab.rb

     把external_url改成部署机器的域名或者IP地址

    vim /mnt/gitlab/etc/gitlab.rb

     

     2、修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

    vim /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

    找到关键字 * ## Web server settings * 

    将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址

    到此为止,gitlab的web管理页面就可以正常访问

    如果还是不能正常访问的话,检查端口是否被占用?

    端口被占用(这里不做)

    如果端口号被占用,改了默认的80端口,后面要接端口号

    external_url 'http://192.168.182.129:8090' 注:这里容器内没改,只是映射到8090

    修改NGINX监听的端口为9999

    nginx['listen_addresses'] = ['*']
    nginx['listen_port'] = 8090

    如果8080端口被Tomcat占用,会出现502的页面

    因此需要修改unicorn的配置,如下

    ### Advanced settings
    # unicorn['listen'] = '127.0.0.1'
    # unicorn['port'] = 8080
     
    # 假设有Tomcat占用了8080,因此改为8082试一试
     unicorn['listen'] = '127.0.0.1'
     unicorn['port'] = 8082

    修改Gitlab数据存储路径(这里不做)

    默认的Gitlab数据存储路径,在目录/var/opt/gitlab/git-data下,防止以后数据过大,所以可以修改路径存储为/data/gitlabData

    vim /mnt/gitlab/etc/gitlab.rb
    ### For setting up different data storing directory
    ###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory
    ###! **If you want to use a single non-default directory to store git data use a
    ###!   path that doesn't contain symlinks.**
    # git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })
    
    #edited by ouyangpeng 2017-8-10  配置gitlab的数据存储位置为/data目录下,保证硬盘安全
    git_data_dirs({ "default" => { "path" => "/data/gitlabData" } })

    设置完后,过一段使用时间,可以看到该目录下的resposities

    配置并启动GitLab

    像上面步骤修改了GitLab的ip地址一样,临时修改了GitLab的配置之后,得执行如下的命令,应用重新配好的配置并重启GitLab,然后查看GitLab的状态。

    因为是容器,所以要进入到gitlab容器中执行命令

    docker exec -ti gitlab /bin/bash

    然后

    gitlab-ctl reconfigure  #花时间比较多 (重新加载配置, 不要重新加载)
    gitlab-ctl restart    #改IP重启就可以了(不管是重置端口, 还是改用户,改IP, 更改配置后就直接重启,不要重新加载配置)
    gitlab-ctl status

    登陆

    打开浏览器,输入本机的ip地址并登陆

      默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。

    常用的几个Gitlab命令

    # 重新应用gitlab的配置
    gitlab-ctl reconfigure
     
    # 重启gitlab服务
    gitlab-ctl restart
     
    # 查看gitlab运行状态
    gitlab-ctl status
     
    #停止gitlab服务
    gitlab-ctl stop
     
    # 查看gitlab运行日志
    gitlab-ctl tail
     
    # 停止相关数据连接服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sideki

     错误

    1、docker启动报错信息如下

    Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen<strong>解决:</strong>

    解决

    检查docker端口映射是否冲突
    重启docker服务后再启动容器

    systemctl restart docker
    docker start gitlab

      本文参考docker安装配置gitlab详细过程此篇博客. 此篇博客大部分都是粘贴复制 docker安装配置gitlab详细过程这篇博客.   写这篇博客, 主要是怕他那篇到时候没了什么的. 所以还是记录下吧

      本篇博客跟参考的博客, 本人亲测有用, 本人就是按照他的博客搭建的GitLab. 端口那自己配置的时候配置没有用过的端口就行了

  • 相关阅读:
    Ubuntu18.04安装配置
    Ubuntu Terminal「控制台」
    Ubuntu16.04系统安装
    UEFI Install CentOS 7
    安装Ubuntu16.04后要做的事
    Ubuntu Google Chrome
    Nuke Linux Crack
    Selenium3自动化测试实战 基于Python语言
    函数基础
    Jenkins持续集成
  • 原文地址:https://www.cnblogs.com/jingjiren/p/12787464.html
Copyright © 2011-2022 走看看