簡體   English   中英

Docker 運行命令有效,但 dockerfile 無效

[英]Docker run commands works but dockerfile not

我在運行 Dockerfile 的圖像時遇到問題。CLI 命令工作正常,但是當我使用 Dockerfile 時,我從本地主機收到錯誤消息:

本地主機沒有發送任何數據。

我正在做的很簡單。 通過 CLI:

docker run -d --name mytomcat -p 8080:8080 tomcat:latest

docker exec -it mytomcat /bin/bash

mv webapps webapps2

mv webapps.dist/ webapps

exit

哪個工作正常。

我的 Dockerfile:

FROM tomcat:latest
CMD mv webapps webapps2 && mv webapps.dist/ webapps && /bin/bash

構建並運行:

docker build -t myrepo/tomacat:1.00  .  
docker run -d --name mytomcat -p 8080:8080 myrepo/tomacat:1.00

不起作用並顯示上述錯誤。

注意:我正在使用 mv 命令,因為我收到 404 錯誤!

有人知道這里的問題嗎?

當您的 Dockerfile 有一個CMD命令時,它會代替基本映像中的命令運行。 使用tomcat鏡像,基礎鏡像將運行 Tomcat 服務器; 但是對於這個 Dockerfile,它試圖運行bash shell,並且沒有任何立即退出的輸入。

要只是移動文件,通常最好使用COPYRUN指令設置一次圖像,而不是每次運行容器時都嘗試重復這些步驟。 對於基本圖像已經具有合理CMD的此設置,您無需在您自己的自定義 Dockerfile 中重復它。

FROM tomcat:latest
RUN mv webapps webapps2 && mv webapps.dist/ webapps
# no particular mention of bash; use the `CMD` from the base image

基本映像包含某種需要配置的運行時並不少見,但基本映像的CMD仍然是正確的。 除了tomcatnginxphp:fpm的工作方式類似; 只要他們的配置文件和代碼在正確的地方,你就不需要重復CMD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM