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

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

在沒有 Maven jetty 的情況下從命令行運行戰爭

在沒有 Maven jetty 的情況下從命令行運行戰爭

汪汪一只貓 2023-06-28 16:17:43
我試圖將一個開源軟件放入 docker 容器(https://github.com/att/XACML)中,但在這個容器中我無法使用 maven。運行此服務的文檔說要使用 mvn jetty,它工作得很好,但為了將其放入容器中,我不想包含構建步驟(maven)。相反,我想要一種編譯戰爭的方法,這樣我就可以將戰爭復制到容器中并從那里執行它。我嘗試了很多嘗試,讓戰爭在沒有 Maven 碼頭的情況下運行,但沒有一個成功。java -jar /path/to/jar 無主清單屬性錯誤。沒有主類,它擴展了一個 HttpServlet使用jetty-runner 當我通過命令行與jetty-runner啟動戰爭時,我沒有收到任何錯誤,但它啟動到一個顯示文件目錄的頁面,而不是實際的項目。制作一個“uber-jar”來打包所有與 1 相同的問題,得到一個沒有主要清單的問題。如果有幫助的話我可以包含更多代碼(pom 文件等),但如果不需要的話我不想添加太多。我對java項目的打包和部署方式非常不熟悉,所以我很難弄清楚需要做什么。謝謝!
查看完整描述

1 回答

?
牛魔王的故事

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

Dockerfile與您的 webapp / war 文件一起使用的最低限度是......

FROM jetty:9.4.18ADD ROOT.war /var/lib/jetty/webapps/

這使用https://hub.docker.com/_/jetty上的官方 jetty docker 鏡像

管理于
https://github.com/eclipse/jetty.docker

這個名字ROOT.war很特殊,將會把你的 webapp 部署在“root”上下文路徑中"/"

塑造形象

如果你像這樣構建它......

$ docker build -t stackoverflow/jetty:latest .

運行圖像

交互式(這樣你就可以記錄日志)

$ docker run --interactive --tty --rm --publish 80:8080 stackoverflow/jetty:latest

作為守護進程

$ docker run --detach --publish 80:8080 stackoverflow/jetty:latest

該服務器將在您運行命令的計算機的端口 80 上可用docker run

配置 Jetty 基地

如果您需要配置 jetty 映像,您可以使用任何標準start.jar命令。

例子:

FROM jetty:9.4.18

WORKDIR $JETTY_BASE

RUN java -jar $JETTY_HOME/start.jar --add-to-start=jsp

ADD ROOT.war /var/lib/jetty/webapps/

沒有 Maven 時如何工作

詳情請參閱官方圖片...

https://github.com/eclipse/jetty.docker/blob/master/9.4-jdk11/Dockerfile

關鍵命令是...

WORKDIR $JETTY_BASE

ENTRYPOINT ["/docker-entrypoint.sh"]

CMD ["java","-jar","/usr/local/jetty/start.jar"]


查看完整回答
反對 回復 2023-06-28
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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