的地方,我有這個Dockerfile工作正常,但有人告訴我,也許是不該做的最好辦法是什麼,我想:重要性CMD的Dockerfile
FROM debian:jessie
RUN apt-get update && apt-get install -y lighttpd php5-cgi php5-common php5 php5-mysql php5-gd
RUN echo server.modules += \(\"mod_rewrite\"\) >> /etc/lighttpd/lighttpd.conf
CMD ["lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"]
RUN lighty-enable-mod fastcgi-php
RUN service lighttpd restart
RUN chown -R www-data:www-data /var/www/html
正如你所看到的,我正在爲lighttpd和php創建一個容器的圖像。
我的問題是關於我的Dockerfile中CMD部分的位置。我被告知最好把它放在文件的最後,但正如你所看到的,我在中間做了它,它工作得很好。
它不會停止創作,也沒有與在它下面的運行部分service lighttpd restart
干擾。
有沒有關於這方面的最佳實踐或這是正常的?我可以在apt-get安裝後用我的CMD創建一個Dockerfile嗎?
感謝您對我的問題的回答,如果發生任何重大錯誤,請回覆我的英語。
爲什麼要包含'RUN服務lighttpd restart'?在圖像中,沒有一個進程正在運行(這些進程只在容器中),因此只有一個層次只會啓動一個未使用restart命令運行的進程,然後立即退出,因爲「service」會很快退出,沒有多大意義。 – BMitch
我現在知道了,但是自從我開始使用docker之後僅僅兩週時間,這個文件是我第一次嘗試正在工作的東西。我有一個新的版本後,與人打成一片,沒有更多的重新啓動,只有一個CMD在文件的末尾,但我們想知道爲什麼它適用於這些構想的「錯誤」^^ –