2016-11-21 54 views
0

我試圖運行Django開發服務器並將所有輸出記錄到文件。Docker:如何使用CMD []中的redirect(command >> file.txt)?

我Dockerfile執行以下命令:

CMD ["/srv/manage.py", "runserver", "0.0.0.0:3000", ">>", "django.log"] 

它建立正常,但在運行崩潰。

問題:如何將輸出從CMD命令重定向到文件?

+0

[在泊塢窗重定向命令輸出(可能的重複http://stackoverflow.com/questions/34632959/redirecting-command-output-在-泊塢窗) – Vingtoft

回答

2

從這Dockerfile documentation

不同於殼的形式中,EXEC形式不調用命令殼。這意味着正常的shell處理不會發生。例如,CMD [ "echo", "$HOME" ]將不會在$HOME上進行變量替換。如果您想要進行shell處理,則可以使用shell窗體或直接執行shell,例如:CMD [ "sh", "-c", "echo", "$HOME" ]

你的命令實際上做的是通過參數"0.0.0.0:3000"">>""django.log""/srv/manage.py"。你真正需要的是

CMD "/srv/manage.py runserver 0.0.0.0:3000 >> django.log" 

(或)

CMD ["/srv/manage.py", "runserver 0.0.0.0:3000 >> django.log"] 
相關問題