gitlab容器化部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab容器化部署相关的知识,希望对你有一定的参考价值。

gitlab 容器化部署

1. docker pull 对应的版本的容器

[https://hub.docker.com/r/gitlab/gitlab-ce/]()

 通过Dockerfile 查看需要挂载的文件目录有
 /etc/gitlab   配置文件 
 /var/log/gitlab   日志
 /var/opt/gitlab   数据文件

2. 使用容器启动 
  docker run -d    -p 80:80    -p 443:443    -p 22:22    --name gitlab    --restart unless-stopped    -v /data/gitlab/config:/etc/gitlab    -v /data/gitlab/logs:/var/log/gitlab    -v /data/gitlab/data:/var/opt/gitlab    gitlab/gitlab-ce:10.7.3-ce

3. 配置https 
   external_url ‘https://gitlab.xxx.com‘

   nginx[‘redirect_http_to_https‘] = true
   nginx[‘ssl_certificate‘] = "/etc/gitlab/ssl/gitlab.example.com.crt"
   nginx[‘ssl_certificate_key‘] = "/etc/gitlab/ssl/gitlab.example.com.key"   

4. 配置Ldap  
   gitlab_rails[‘ldap_enabled‘] = true

    ###! **remember to close this block with ‘EOS‘ below**
    gitlab_rails[‘ldap_servers‘] = YAML.load <<-‘EOS‘
    main:
     label: ‘LDAP‘
     host: ‘xxxxxxxxxxxx‘
     port: 389
     uid: ‘uid‘
     bind_dn: ‘uid=xxxxx,cn=xxxx,dc=xxx,dc=xxx‘
     password: ‘xxxxx‘
     encryption: ‘plain‘
     verify_certificates: false
     active_directory: true
     base: ‘DC=xxxx,DC=xxxxx’
     admin_group: ‘Global Admins‘
     EOS     

5. 配置邮件
     gitlab_rails[‘smtp_enable‘] = true
     gitlab_rails[‘smtp_address‘] = ""
     gitlab_rails[‘smtp_port‘] = 25
     gitlab_rails[‘smtp_user_name‘] = ""
     gitlab_rails[‘smtp_password‘] = ""
     gitlab_rails[‘smtp_domain‘] = ""
     gitlab_rails[‘smtp_authentication‘] = false
     gitlab_rails[‘smtp_enable_starttls_auto‘] = true
     gitlab_rails[‘smtp_tls‘] = false      

    gitlab_rails[‘gitlab_email_enabled‘] = true
    gitlab_rails[‘gitlab_email_from‘] = ‘[email protected]‘
    gitlab_rails[‘gitlab_email_display_name‘] = ‘Gitlab ‘    

6. 重新加载配置
   gitlab-ctl reconfigure  使配置文件生效

7. 备份

   docker exec gitlab gitlab-rake gitlab:backup:create   

8. gitlab 权限管理
   Guest  可以创建issue 发表评论  不能读写版本库
   Reporter 可以克隆代码  不能提交  QA ,PM可以赋予这个权限
   Developer 可以克隆代码、 开发 提交  push,RD 可以赋予这个权限
   Master   可以创建项目  添加tag  保护分支   添加项目成员  编辑项目,核心RD负责人可以赋予这个权限
   owner  可以设置项目访问权限,删除项目 迁移项目  管理组成员   开发组leader 可以赋予这个权限 

gitlab 开启hooks

  需要设置 "allow_local_requests_from_hooks_and_services":true,  

  curl -X GET --header "PRIVATE-TOKEN: xxxxxxxx" ‘http://10.39.15.24/api/v4/application/settings?‘

  curl -X PUT  --header "PRIVATE-TOKEN: DWpr1Q2dsJzQZmjDXMny" ‘https://gitlab.enncloud.cn/api/v4/application/settings?allow_local_requests_from_hooks_and_services=true‘ | grep allow

以上是关于gitlab容器化部署的主要内容,如果未能解决你的问题,请参考以下文章

gitlab,gitlab runner自动化部署docker容器

GitLab安装部署

持续集成与自动化部署 - gitlab部署

Gitlab代码管理仓库安装部署

Gitlab部署及汉化操作

gitlab容器化布署及git常用操作