docker-compose Verdaccio LDAP

时间:2018-09-05 09:33:07

标签: npm ldap docker-compose

请帮助我为Verdaccio + LDAP创建docker-compose文件。典型的撰写文件

version: '3'

services:
  verdaccio:
    image: verdaccio/verdaccio:latest
    container_name: verdaccio
    ports:
      - "4873:4873"
    volumes:
      - verdaccio:/verdaccio

volumes:
  verdaccio:
    driver: local 

但是我没有找到如何向该配置添加LDAP插件以及如何为构建添加特殊卷?

1 个答案:

答案 0 :(得分:0)

首先,这取决于您如何部署Verdaccio,但是,我假设您正在使用Docker。

有一个完整的示例,介绍如何设置Verdaccio + OpenLDAP

https://github.com/verdaccio/docker-examples/tree/master/ldap-verdaccio

将插件添加到Docker映像的关键扩展了官方映像

FROM verdaccio/verdaccio

RUN npm i && npm install verdaccio-ldap

这将扩展正式安装LDAP插件的过程,

然后,您必须像这样将特定的LDAP配置添加到config.yaml文件中

auth:
  ldap:
    type: ldap
    client_options:
      url: "ldap://openldap:389"
      # Only required if you need auth to bind
      adminDn: "cn=admin,dc=example,dc=org"
      adminPassword: "admin"
      # Search base for users
      searchBase: "ou=People,dc=example,dc=org"
      searchFilter: "(cn={{username}})"
      # If you are using groups, this is also needed
      groupDnProperty: 'cn'
      groupSearchBase: 'ou=Groups,dc=example,dc=org'
      # If you have memberOf support on your ldap
      searchAttributes: ['*', 'memberOf']
      # Else, if you don't (use one or the other):
      # groupSearchFilter: '(memberUid={{dn}})'
      #
      # Optional, default false.
      # If true, then up to 100 credentials at a time will be cached for 5 minutes.
      cache: false
      # Optional
      reconnect: true

仅此而已。请检查完整的示例,了解其他仅属于Docker部分的次要配置主题。

除了Docker外,您还可以使用npm。首先,确保you have installed Verdaccio globally,然后像这样在全球范围内安装ldap插件。

npm install --global verdaccio-ldap

最后一步,在yaml文件中遵循上面的相同配置。

我希望有帮助。