容器化 OpenLDAP 迁移

#Linux #Docker

这次使用的是 bitnami/openldap 镜像。 唯一不好的是,在第一次启动初始化数据如果出错,会直接退出而不是打印错误信息,只能对照错误码去找。

文档在 Docker Hub: bitnami/openldap 上。

docker compose 文件:

services:
  openldap:
    image: bitnami/openldap:latest
    container_name: openldap
    ports:
      - 389:1389
      - 636:1636
    environment:
      - TZ=Asia/Shanghai
      - LDAP_ADMIN_USERNAME=ldapadm
      - LDAP_ADMIN_PASSWORD=password
      - LDAP_ALLOW_ANON_BINDING=no
      - "LDAP_EXTRA_SCHEMAS=cosine, inetorgperson"
      - "LDAP_ADMIN_DN=cn=ldapadm,dc=azuk,dc=top"
      - "LDAP_ROOT=dc=azuk,dc=top"
      - "LDAP_ENABLE_TLS=yes"
      - "LDAP_TLS_CERT_FILE=/cert/ldap.pem"
      - "LDAP_TLS_KEY_FILE=/cert/ldap.key"
      - "LDAP_TLS_CA_FILE=/cert/ca.pem"
    volumes:
      - ./data:/bitnami/openldap
      - "./cert:/cert:ro"
      - "./custom-schema.ldif:/schema/custom.ldif:ro"
      - ./ldifs:/ldifs

这里设置 LDAP_EXTRA_SCHEMAS 是为了排除它默认有的 nis ,因为要用 rfc2307bis ,防止冲突。

容器默认用户/组是 1001:1001 ,证书需要设置权限,否则初始化报错。