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

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

將命令行參數傳遞給在 Docker 中運行的 Java 應用程序(Spring Boot)

將命令行參數傳遞給在 Docker 中運行的 Java 應用程序(Spring Boot)

喵喵時光機 2022-05-25 16:38:21
我正在嘗試將命令行參數傳遞給在Docker 容器中運行的Spring Boot應用程序的主要方法。從命令行運行,我會做這樣的事情: $ mvn spring-boot:run -Dspring-boot.run.arguments=--greeting=Hello,--recipient=World應用程序需要提取這些 args 并對它們進行一些處理:public static void main(String[] args) {    Options options = new Options();    Option greeting = new Option("-g", "greeting", true, "Greeting");    greeting.setRequired(true);    greeting.addOption(greeting);    Option recipient = new Option("-r", "recipient", true, "Recipient");    recipient.setRequired(true);     recipient.addOption(recipient);    try {        cmd = parser.parse(options, args);    } catch (ParseException e) {        System.out.println(e.getMessage());        formatter.printHelp("utility-name", options);        System.exit(1);    }    // Do some processing using these args ...    // Run the Spring Boot app    SpringApplication.run(SpringBootApp.class, args);}我試過簡單地使用-e標志傳遞它們:docker run -p 8080:8080 -d -e "greeting=Hello" -e "recipient=World" test-image我的Dockerfile樣子是這樣的:FROM openjdk:8-jdk-alpineVOLUME /tmpCOPY ./target/spring-boot-app-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]由于需要選項(args),我不斷收到錯誤消息并且應用程序退出。
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

您可以在run命令中的 docker 映像名稱之后提供所有命令行參數。

例子:

docker run -p 8080:8080 test-image --recipient="World"--greeting="Hello"


查看完整回答
反對 回復 2022-05-25
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

您可以嘗試像這樣修改您ENTRYPOINTDockerfile

ENTRYPOINT exec java -jar -Dspring-boot.run.arguments=--greeting=Hello,--recipient=World

或者您可以在運行時傳遞參數:

docker run -p 8080:8080 test-image --recipient="World"--greeting="Hello"


查看完整回答
反對 回復 2022-05-25
  • 2 回答
  • 0 關注
  • 480 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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