gitlab multiline line config in docker compose file

Viewed 1432

In docker-compose.yml cannot add to environment var GITLAB_OMNIBUS_CONFIG ldap multiline yaml configuration, because:

# Add any other gitlab.rb configuration here, each on its own line
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
  label: 'LDAP'
  host: 'ldap.<>.local'
  port: 389
  uid: 'uid'
  bind_dn: 'uid=<>,ou=People,dc=,dc='
  password: '<>'
  encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
  base: '<>'
  attributes:
    username: ['uid', 'userid', 'sAMAccountName']
    email:    ['mail', 'email', 'userPrincipalName']
    name:       'cn'
    first_name: 'givenName'
    last_name:  'sn'
EOS

Are there solution?

1 Answers

PS: Posting comments as answer as I need formatting

Did you try below?

version: '3'
services:
  nginx:
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
        main:
          label: 'LDAP'
          host: 'ldap.<>.local'
          port: 389
          uid: 'uid'
          bind_dn: 'uid=<>,ou=People,dc=,dc='
          password: '<>'
          encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
          base: '<>'
          attributes:
            username: ['uid', 'userid', 'sAMAccountName']
            email:    ['mail', 'email', 'userPrincipalName']
            name:       'cn'
            first_name: 'givenName'
            last_name:  'sn'
        EOS
    image: nginx

And it validates fine

$ docker-compose config
services:
  nginx:
    environment:
      GITLAB_OMNIBUS_CONFIG: "gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'\n\
        main:\n  label: 'LDAP'\n  host: 'ldap.<>.local'\n  port: 389\n  uid: 'uid'\n\
        \  bind_dn: 'uid=<>,ou=People,dc=,dc='\n  password: '<>'\n  encryption: 'plain'\
        \ # \"start_tls\" or \"simple_tls\" or \"plain\"\n  base: '<>'\n  attributes:\n\
        \    username: ['uid', 'userid', 'sAMAccountName']\n    email:    ['mail',\
        \ 'email', 'userPrincipalName']\n    name:       'cn'\n    first_name: 'givenName'\n\
        \    last_name:  'sn'\nEOS\n"
    image: nginx
version: '3.0'
Related