如何在Dockerfile中停止slapd?

时间:2016-01-23 14:24:27

标签: docker debian openldap dockerfile

我尝试使用slapdDockerfile构建自己的Docker容器。

安装slapd即可,然后我需要停止slapd才能添加自定义数据库。
为此,我需要在非运行slapadd上运行slapd命令。然而RUN pkill slapd会产生以下错误:

Step 7 : RUN service slapd start ; ldapadd -Y EXTERNAL -H ldapi:/// -f xxx.ldif
---> Using cache
---> 53e1e1a59517
Step 8 : RUN pkill slapd
---> Running in efc0058a4bfe
The command '/bin/sh -c pkill slapd' returned a non-zero code: 1

您知道为什么以及如何使用slapd正确停止Dockefile

1 个答案:

答案 0 :(得分:0)

您正在将slapd操作拆分为多个RUN指令:这是不切实际的,因为每个RUN将创建一个中间容器,并将该容器作为中间映像提交。

最好将所有操作分组到一个脚本中,先在图像中COPY,然后RUN该脚本。
这样,在一个中间容器中,您可以启动/停止slapd,添加ldif文件,执行其他测试,在中间容器停止之前作为新的中间映像提交。