1

案例 1:经典 docker run

env-file

BASE_DN=dc=example,dc=com
URI=ldap://XX.XX.XXX.XXX:389
ROOT_ADDCOUNT=cn=admin,dc=example,dc=com
ROOT_PASSWORD=mypassword

使用以下命令运行 docker:

docker run --env-file ./env-file -it -d akhilrajmailbox/ldap-client:latest /bin/bash

进入泊坞窗

docker exec -it <container_id> bash

==> 工作,然后我可以访问我的 ldap

案例 2:使用 docker-compose

docker-compose.yml

version: "3"

services:
  ldap_client:
    restart: always
    image: akhilrajmailbox/ldap-client:latest
    environment:
      - 'BASE_DN="dc=example,dc=com"'
      - 'URI="ldap://XX.XX.XXX.XXX:389"'
      - 'ROOT_ADDCOUNT="cn=admin,dc=example,dc=com"'
      - 'ROOT_PASSWORD="mypassword"'

运行 docker-compose :

docker-compose up -d

进入泊坞窗

docker exec -it <container_id> bash

==> 不起作用,然后我无法访问我的 ldap

案例 3:使用 docker-stack

同上docker-compose.yml

使用以下命令运行 docker-stack:

docker stack deploy --compose-file=docker-compose.yml my_stack

像上面一样进入容器

==> 不起作用,然后我无法访问我的 ldap

提示:

  • 在来自compose&的两个容器上,stack我得到了我的环境变量。
  • 这看起来我无法ldap://XX.XX.XXX.XXX:389从他们那里得到。
4

1 回答 1

1

我试图用 docker 版本 2 重现该问题,问题出在您的“环境:”块中。尝试使用以下格式(避免:")示例 :: 使用'BASE_DN=dc=example,dc=com'而不是'BASE_DN="dc=example,dc=com"'

version: "2"

services:
  ldap_client:
    restart: always
    image: akhilrajmailbox/ldap-client:latest
    environment:
      - 'BASE_DN=dc=example,dc=com'
      - 'URI=ldap://XX.XX.XXX.XXX:389'
      - 'ROOT_ADDCOUNT=cn=admin,dc=example,dc=com'
      - 'ROOT_PASSWORD=mypassword'

注意 :: 我在 yaml 文件中尝试使用 docker 版本 2。

于 2019-03-25T10:45:37.327 回答