我尝试使用slapd
和Dockerfile
构建自己的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
?
答案 0 :(得分:0)
您正在将slapd操作拆分为多个RUN
指令:这是不切实际的,因为每个RUN
将创建一个中间容器,并将该容器作为中间映像提交。
最好将所有操作分组到一个脚本中,先在图像中COPY
,然后RUN
该脚本。
这样,在一个中间容器中,您可以启动/停止slapd,添加ldif文件,执行其他测试,在中间容器停止之前作为新的中间映像提交。