dwSun

一个很正经的IT工作者
中国非著名人工智能表演艺术家

导航

gitlab docker安装配置ldap

镜像下载

直接从dockerhub 下载官方镜像即可

docker pull gitlab/gitlab-ce

首次运行

在某个位置创建一个文件夹并运行如下命令:

docker run --hostname example.com -p 0.0.0.0:8443:443 -p 0.0.0.0:8080:80 -p 0.0.0.0:8022:22 --name gitlab -v $(pwd)/config:/etc/gitlab -v $(pwd)/logs:/var/log/gitlab -v $(pwd)/data:/var/opt/gitlab gitlab/gitlab-ce:latest

需要注意的是,这里的端口需要加上0.0.0.0才能提供给外部访问。

运行完成后,会在config下面生成gitlab.rb

设置ldap

编辑config目录下面的gitlab.rb,然后重新运行docker容器。

gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main: # 'main' is the GitLab 'provider ID' of this LDAP server
    label: 'LDAP'
    host: 'ldap.host.com'
    port:389
    uid: 'uid' # 这里是个很坑的地方,在这里,用的是ldap的uid字段作为用户登录名,所以直接写了uid,换句话说,冒号前面的uid跟ldap不是一个意思的。
    bind_dn: 'cn=admin,dc=domain,dc=cn'
    password: 'password'
    encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
    verify_certificates: false # 如果用的证书是自签名的,那么这里需要设置为false以保证不会出现服务器证书验证错误。
    ca_file: ''
    ssl_version: ''
    active_directory: false # 我用的slapd,如果用微软的ad,这里需要设置为true
    allow_username_or_email_login: false
    block_auto_created_users: false
    base: 'ou=person,dc=domain,dc=cn' # 这里设置用户名查找位置
    user_filter: '' # 这里可以设置过滤规则,包括memberof操作符也可以用。
    attributes:
      username: ['uid', 'userid', 'sAMAccountName']
      email:    ['mail', 'email', 'userPrincipalName']
      name:      'cn'
      first_name: 'givenName'
      last_name:  'sn'
    ## EE only
    group_base: ''
    admin_group: ''
    sync_ssh_keys: false
EOS

其他设置

smtp设置,禁止注册,权限设置等等。

posted on 2017-10-09 16:12  dwSun  阅读(1510)  评论(0编辑  收藏  举报