Dockerfile:运行客户端/服务器python脚本

时间:2016-12-21 18:54:21

标签: python docker

在我的dockerfile中,我有以下几行:

CMD [ "python", "./server.py" ]
CMD [ "python", "./client.py" ]

但是两者之间的联系被拒绝了,我这样做了吗?

2 个答案:

答案 0 :(得分:0)

从文档中:Dockerfile中只能有一条CMD指令。如果列出多个CMD,则只有最后一个CMD才会生效。

您可以构建两个dockets。一个用于客户端,一个用于服务器并在两者之间进行通信。

答案 1 :(得分:0)

我做了什么让我能够守护(启动/拒绝)多个进程:

由于nohup有些奇怪(它显然不能直接通过ssh取消python程序),这需要在一个单独的脚本中才能正常工作: startlocal.sh

python server.py > /dev/null 2>&1 &

你跑了什么:

start.sh

nohup ./startlocal.sh > /dev/null 2>&1 &
nohup ./startlocal2.sh > /dev/null 2>&1 &
...

我认为两者都不需要/dev/null...,但这可行(甚至通过SSH)。使用docker,您希望命令永远占用,所以最后您可以:

sleep infinity

它不会退出。