docker-组成的 Verdaccio LDAP

docker-compose Verdaccio LDAP

请帮助我为 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 插件添加到此配置以及如何为构建添加特殊卷?

首先,这取决于您部署 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 文件中遵循上面相同的配置。

希望对您有所帮助。