当您指定一个JSON清单作为
CMD一个
Dockerfile,它不会在shell执行,所以平时外壳的功能,如输出和错误重定向,将无法正常工作。
从文档中:
exec表单被解析为JSON数组,这意味着您必须
"在单词而非单引号()周围使用双引号(')。与shell表单不同,exec表单不会调用命令shell。这意味着正常的外壳处理不会发生。例如,
CMD [ "echo", "$HOME"]将不会对进行变量替换$HOME。如果要进行shell处理,则可以使用shell形式或直接执行shell,例如:CMD [ "sh","-c", "echo", "$HOME" ]。
您的命令实际 执行的index.py``"1>server.log"``"2>server.log"
操作是 执行
脚本,并将字符串 和 作为命令行参数 传递给 该python脚本 。
请改用以下方法之一(两者都可以):
CMD "python index.py > server.log 2>&1"
CMD ["/bin/sh", "-c", "python index.py > server.log 2>&1"]



