我必须在一个容器中启动两项服务
我尝试了各种各样的变化,并认为这是它应该看起来的样子。 但显然我错过了一些东西。 容器马上存在!
CMD ["start"] ENTRYPOINT ["/sbin/dockCtrl"]
我也读了,我不应该使用systemd /服务,直接尝试命令没有成功。 (请参阅未注释的命令)
build立和运行命令:
docker build -t robotamer/citadel citadel docker run -d --name="citadel" --hostname="mail" 24fcf023c95e
我可以使用dockCtrl bash来input容器,而不是-d并使用dockCtrl bash脚本。
dockerfile:
FROM debian:testing MAINTAINER RoboTamer <[email protected]> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get install -y citadel-suite nano rsync && \ apt-get clean ENV DEBIAN_FRONTEND interactive EXPOSE 25/tcp 587/tcp 143/tcp 993/tcp 995/tcp 5222 2020/tcp 504/tcp COPY dockCtrl /sbin/ CMD ["start"] ENTRYPOINT ["dockCtrl", "start"]
dockCtrl(-rwxr-xr-x):
#!/bin/bash if test $1 = "start" then # exec /usr/sbin/citserver -d -x3 -lmail -t/dev/null # exec /usr/sbin/webcit -d -p80 -f -c service citadel start service webcit start fi if test $1 = "stop" then service citadel stop service webcit stop fi if test $1 = "clean" then rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* fi
这里要注意两点:
ENTRYPOINT , CMD被附加到ENTRYPOINT 。 您当前的Dockerfile将运行dockCtrl start start 。 这可能不是你想要的。