标题描述了我的问题。我现在感觉真的很愚蠢,因为这可能是一个小问题。
我已经被这个问题困扰了快两天了。我正在构建的应用程序要大得多,使用 docker compose 来启动 postgres 容器,但是可以通过创建一个新的(java 21,maven)spring boot 项目(仅使用 spring web 作为其依赖项)来重新创建问题。在带有@SpringBootApplication的类中,添加以下内容:
@Bean
ApplicationRunner applicationRunner() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
return args -> {
System.out.println("Parsed: 12:30 pm -> " + LocalTime.parse("12:30 p.m.", formatter));
};
}
Run Code Online (Sandbox Code Playgroud)
当我使用 intellij 或 运行它时./mvnw spring-boot:run,或者在常规 java 类(没有注释)中运行它时,它会运行。
但是,当我使用这个 docker 文件时:
FROM eclipse-temurin:21-jdk-alpine
COPY . /app/
WORKDIR /app
CMD ["./mvnw", "spring-boot:run", "-Dskiptests"]
Run Code Online (Sandbox Code Playgroud)
并使用 构建docker build -t localtime:1.0 .,然后使用: 运行docker run -p 1234:8080 --name localtime-container localtime:1.0。这是我在常规春季启动日志消息后得到的信息:
Error starting ApplicationContext. …Run Code Online (Sandbox Code Playgroud)