如何在Dockerfile中停止slapd?

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

安装slapd是好的,然后我需要停止slapd为了添加一个自定义的数据库。
为此,我需要在非运行的slapd上运行slapadd命令。 尽pipe如此, 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 

你知道为什么,怎样才能停止与Dockefile妥善slapd

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

最好是将所有操作分组到一个脚本中,首先在图像中COPY ,然后RUN脚本。
这样,在一个中间容器内,你可以启动/停止slapd,添加你的ldif文件,做其他testing, 中间容器停止之前 ,提交一个新的中间图像。