小编Fak*_*Ife的帖子

Java LocalTime.parse 在本地 PC 上的 Spring Boot 中工作,但在 Docker 容器中不起作用

标题描述了我的问题。我现在感觉真的很愚蠢,因为这可能是一个小问题。

我已经被这个问题困扰了快两天了。我正在构建的应用程序要大得多,使用 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)

java docker spring-boot

2
推荐指数
1
解决办法
71
查看次数

标签 统计

docker ×1

java ×1

spring-boot ×1