亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從dockerfile構建docker鏡像,無法讓java正常運行

從dockerfile構建docker鏡像,無法讓java正常運行

呼喚遠方 2021-10-28 16:59:08
我是 docker 和 dockerfile 文件的新手,剛剛開始嘗試編寫它們。我已經構建了一個簡單的 java 控制臺應用程序,并且可以從 dockerfile 成功構建一個 docker 映像,但是如果我包含CMD ["java","-jar","app.jar"]當我嘗試運行圖像時,我總是收到 bin/sh 錯誤,通常是“找不到 java”或類似錯誤。但是,當我不包含 CMD 行而僅使用此 Dockerfile 來構建我的映像時FROM openjdk:8-jre-alpineCOPY app.jar /app.jar然后運行docker run -it --rm my-container:tag然后我可以運行java -jar app.jar并且應用程序按預期運行。我也可以跑docker run -it --rm my-container:tag java -jar app.jar并且應用程序按預期運行。我讀過的每個指南都說我應該能夠使用上面寫的 CMD 或 ENTRYPOINT,但沒有任何效果。在這個簡單的例子中我可能遺漏了什么?謝謝你,特雷弗編輯:我在 MacOS Sierra 上運行 docker 版本 18.06.1-ce-mac73 (26764)。我并不肯定 docker 以這種方式工作,但是我的公共 docker 集線器中有兩個圖像版本。v1 的 dockerfile 是:FROM openjdk:8-jre-alpineCOPY 454calendar.jar app.jarv2 的 dockerfile 是:FROM openjdk:8-jre-alpineENV PROJECT_DIR=/appWORKDIR $PROJECT_DIRCOPY 454calendar.jar $PROJECT_DIR如果我添加CMD [“java”,”-jar”,”454calendar.jar”]到 v2 dockerfile 并重建,我使用 docker run 命令收到此錯誤。/bin/sh: [“java”,”-jar”,”454calendar.jar”]: not found沒有 CMD 行,我可以運行容器,它直接進入 /app 工作目錄,在那里我可以運行 java 命令并執行程序。我的公共 docker 存儲庫中容器的兩個版本在它們各自的 dockerfiles 中沒有 CMD 行。
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

解決方案非常簡單。感謝@Rakesh,我在 MacOS 上檢查了 TextEdit 的配置,看到 Smart Quotes 已打開。一旦我關閉該選項并重新輸入雙引號,然后重建并運行 docker 容器,應用程序就會按預期啟動。


查看完整回答
反對 回復 2021-10-28
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

我認為你的方法沒有任何問題。我能夠制作一個HelloWorld應用程序來運行下面的Dockerfile.


FROM openjdk:8-jre-alpine

RUN mkdir /app

RUN cd /app

COPY HelloWorld.jar /app/HelloWorld.jar

WORKDIR /app

CMD ["java","-jar", "HelloWorld.jar"]

我使用以下 docker 版本


docker -v

Docker version 18.06.1-ce, build e68fc7a


docker-compose -v

docker-compose version 1.22.0, build f46880f


查看完整回答
反對 回復 2021-10-28
  • 2 回答
  • 0 關注
  • 794 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號