Docker容器快速部署Gitlab

作者: Saxon_323e | 来源:发表于2019-04-24 23:08 被阅读4次

    1. 下载gitlab镜像

    docker pull gitlab/gitlab-ce
    

    2. 运行gitlab实例

    
    GITLAB_HOME=/mnt/disk1/gitlab
    docker run -d --hostname gitlab --publish 5443:443 --publish 5080:8080 --publish 5022:22 --name gitlab --restart always \
    --volume $GITLAB_HOME/config:/etc/gitlab \
    --volume $GITLAB_HOME/logs:/var/log/gitlab \
    --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce
    

    注意:上面5080映射到gitlab容器的8080(因为gitlab默认使用80对外服务),创建完成后必需进入gitlab容器修改vim /etc/gitlab/gitlab.rb内容为:

    external_url 'http://xx.com:8080'
    

    3. 配置gitlab实例

    3.1 配置邮箱:

    docker exec -t -i gitlab vim /etc/gitlab/gitlab.rb
    

    下面以网易163邮箱为例配置邮箱:

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.163.com"
    gitlab_rails['smtp_port'] = 25
    gitlab_rails['smtp_user_name'] = "xxxx@163.com"
    gitlab_rails['smtp_password'] = "xxxxpassword"
    gitlab_rails['smtp_domain'] = "163.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = false
    gitlab_rails['smtp_openssl_verify_mode'] = "peer"
    gitlab_rails['gitlab_email_from'] = "xxxx@163.com"
    user["git_user_email"] = "xxxx@163.com"
    

    注意以上的xxxx@163.com代表用户名,即邮箱地址,而xxxxpassword不是邮箱的登陆密码而是网易邮箱的客户端授权密码, 再网易邮箱web页面的设置-POP3/SMTP/IMAP-客户端授权密码查看。

    #3.2 配置外部访问URL

    这个必须配置,否则默认以容器的主机名作为URL,刚开始由于做了端口映射80->8080, 因此设置为

    external_url "http://10.103.240.36:8080"
    

    后来发现external_url只能配置ip或者域名,不能有端口,否则不能启动。
    于是只能把端口设置为80->80,然后external_url设置为:

    注:每次重启docker或gitlab的容器,都会将 /etc/gitlab/gitlab.rb下的external_url 地址的端口(如:上面是8080)刷新到nginx配置文件:/var/opt/gitlab/nginx/conf/gitlab-http.conf ,这样就需注意必须与docker run... 创建容器时映射的端口一致,否则下次重启nginx端口配置就会被覆盖,访问不了gitlab
    external_url "http://10.103.240.36"
    

    4. 重启gitlab

    docker restart gitlab
    

    参考文献:https://segmentfault.com/a/1190000000345686

    FQA

    1,HTTP 502: Whoops, GitLab is taking too much time to respond.
    解决:
    # gitlab-ctl stop
    
    # vi /etc/gitlab/gitlab.rb   (取消注释并修改端口)
    unicorn['port'] = 8801
    
    # gitlab-ctl reconfigure  (重新生成配置)
    # gitlab-ctl restart
    # lsof -i:8081        (check whether unicorn has started properly)
    

    有时候修改配置后要不断刷新才能生效

    2,点击项目Clone按钮,地址却是localhost(或主机名),如何修改为域名地址?
    vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
    修改节点(注不包含http前缀):production.gitlab.host=git.xxx.com
    

    原因参考

    相关文章

      网友评论

        本文标题:Docker容器快速部署Gitlab

        本文链接:https://www.haomeiwen.com/subject/hzkogqtx.html