在我的dockerfile中,我有以下几行:
CMD [ "python", "./server.py" ]
CMD [ "python", "./client.py" ]
但是两者之间的联系被拒绝了,我这样做了吗?
答案 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
它不会退出。