我在Docker檔案中遇到了覆寫入口點的問題。對于這個問題(據我所知),可以使用帶--entrypoint選項的docker run,例如:
docker run --entrypoint "python3 main_script.py DEV"
然而,在我的情況下,我不能使用docker run命令,因為我必須使用Helm圖表進行部署。
是否有替代docker run使用Helm圖表的方法,或者其他我可能沒有想到的替代方法/解決方案?
uj5u.com熱心網友回復:
使用Helm圖表進行部署
這很簡單:Kubernetes
。command:覆寫了DockerENTRYPOINT(而Kubernetesargs:與DockerCMD匹配)。 因此,你的部署規范可以只說command:。 - python3 - main_script.py - {{ .Values.environment }}。通常情況下,你不應該需要覆寫
ENTRYPOINT,特別是在docker運行的情況下。ENTRYPOINT并不是必需的,而且很容易在docker run行的末尾覆寫CMD。 因此,如果你改變你的Docker檔案,說CMD python3 some_other_script.py # with no ENTRYPOINT。然后你可以
docker run my-image python3 main_script.py DEV如果這不是一個選項,那么你需要注意
docker run --entrypoint的限制,它只接受一個shell詞。 這意味著你的命令的第一個詞與--entrypoint一起,是一個Docker選項(在鏡像名稱之前),其余的被解釋為一個命令(在鏡像名稱之后)。docker run --entrypoint python3 my-image 主腳本.py DEVuj5u.com熱心網友回復:
首先你可以按照https://stackoverflow.com/a/69242677/15087442中的建議設定命令。這在kubernetes的檔案中有詳細的描述。https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
但也有另一種選擇。你可以改變docker鏡像的入口點。如果它是你自己的docker鏡像,那就不用考慮了。但讓我們考慮一下你使用的是別人的鏡像。那么你可以通過建立另一個鏡像來修改它。Dockerfile:
FROM old_image:latest ENTRYPOINT python3 main_script.py DEV然后你用
docker build .構建鏡像,用docker push推送到你喜歡的docker倉庫,并使用該倉庫代替原來的倉庫。如果你還想修改鏡像中的其他東西,這就非常有趣了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326377.html
標籤:
上一篇:除非我改變`mount``target`,否則Docker容器會立即關閉。
下一篇:移除資料框架中兩列重復出現的物件
