我正在嘗試將命令行參數(shù)傳遞給在Docker 容器中運(yùn)行的Spring Boot應(yīng)用程序的主要方法。從命令行運(yùn)行,我會(huì)做這樣的事情: $ mvn spring-boot:run -Dspring-boot.run.arguments=--greeting=Hello,--recipient=World應(yīng)用程序需要提取這些 args 并對(duì)它們進(jìn)行一些處理: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);}我試過簡(jiǎn)單地使用-e標(biāo)志傳遞它們: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"]由于需要選項(xiàng)(args),我不斷收到錯(cuò)誤消息并且應(yīng)用程序退出。
將命令行參數(shù)傳遞給在 Docker 中運(yùn)行的 Java 應(yīng)用程序(Spring Boot)
喵喵時(shí)光機(jī)
2022-05-25 16:38:21