如何在Dockerfile中停止拍打?

如何在Dockerfile中停止拍打?,docker,debian,openldap,dockerfile,Docker,Debian,Openldap,Dockerfile,我尝试用slapd和Dockerfile构建自己的Docker容器 安装slapd正常,然后我需要停止slapd以添加自定义数据库。 为此,我需要在非运行的slapd上运行slapadd命令。但是运行pkill slapd会产生以下错误: Step 7 : RUN service slapd start ; ldapadd -Y EXTERNAL -H ldapi:/// -f xxx.ldif ---> Using cache ---> 53e1e1a59517 Step 8 :

我尝试用
slapd
Dockerfile
构建自己的Docker容器

安装
slapd
正常,然后我需要停止
slapd
以添加自定义数据库。
为此,我需要在非运行的
slapd
上运行
slapadd
命令。但是
运行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

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

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

最好将所有操作分组到一个脚本中,首先在图像中复制,然后运行该脚本。

这样,在一个中间容器中,您可以在中间容器停止并作为新的中间映像提交之前启动/停止slapd,添加ldif文件,执行其他测试。

您将slapd操作拆分为多个
运行
指令:这不实际,每次运行
都将创建一个中间容器,并将该容器作为中间映像提交

最好将所有操作分组到一个脚本中,首先在图像中复制,然后运行该脚本。

这样,在一个中间容器中,您可以在中间容器停止并作为新的中间映像提交之前启动/停止slapd,添加ldif文件,执行其他测试。

您不想运行服务slapd start。你想要
CMD/usr/sbin/slapd
(或者其他什么)
RUN
用于设置容器,
CMD
是在容器中运行的命令。您不想
运行service slapd start
。你想要
CMD/usr/sbin/slapd
(或者其他什么)
RUN
用于设置容器,
CMD
是在容器中运行的命令。