案例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
通过
进入dockerdocker 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
通过
进入dockerdocker 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
取得联系。答案 0 :(得分:0)
我尝试重现docker版本2的问题,问题出在您的“ environment:”块中。尝试使用以下格式(避免使用:“”)
示例::使用'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。