I've tried to configure the live reload in spring boot application, using Intellij and Docker, but this is not working.
IDE: IntelliJ IDEA 2023.1.2 (Community Edition)
OS: Ubuntu 22.04
Open JDK: 20.0.1
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.coding4world</groupId>
<artifactId>user-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>user-api</name>
<description>User API</description>
<properties>
<java.version>20</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
</plugins>
</build>
</project>
application.properties
#local environment configuration
spring.devtools.remote.secret=mysecret
dockerfile (I tried to generate the image with spring-boot:build-image too, but it didn't work too)
FROM eclipse-temurin:20.0.1_9-jre-alpine@sha256:a0c54e367b648e585722fc6e8d69361ad54bafdc5b89584da987b996b035fb11
WORKDIR /opt/app
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
RUN chown -R javauser:javauser .
USER javauser
ENTRYPOINT ["java", "-jar", "app.jar"]
Error:
2023-06-23T20:37:35.011931163Z Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start
2023-06-23T20:37:35.011932745Z at java.base/java.util.concurrent.FutureTask.report(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011934197Z at java.base/java.util.concurrent.FutureTask.get(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011935667Z at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:873) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011937223Z ... 30 common frames omitted
2023-06-23T20:37:35.011938668Z Caused by: org.apache.catalina.LifecycleException: A child container failed during start
2023-06-23T20:37:35.011940173Z at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:885) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011942895Z at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011944542Z at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011946041Z at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011947551Z at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011949077Z at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011950615Z at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011952166Z at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011953988Z at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011955568Z ... 30 common frames omitted
2023-06-23T20:37:35.011957013Z Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.StandardRoot@44d4d992]
2023-06-23T20:37:35.011958596Z at java.base/java.util.concurrent.FutureTask.report(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011960077Z at java.base/java.util.concurrent.FutureTask.get(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011962845Z at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:873) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011964383Z ... 38 common frames omitted
2023-06-23T20:37:35.011965805Z Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.StandardRoot@44d4d992]
2023-06-23T20:37:35.011967334Z at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011968872Z at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011970357Z at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011971860Z at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4567) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011973421Z at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4700) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011974933Z at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011976480Z at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011977994Z at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011979522Z at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011981295Z at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011982896Z at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011985477Z at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011987728Z ... 38 common frames omitted
2023-06-23T20:37:35.011990058Z Caused by: java.lang.Error: factory already defined
2023-06-23T20:37:35.011992165Z at java.base/java.net.URL.setURLStreamHandlerFactory(Unknown Source) ~[na:na]
2023-06-23T20:37:35.011993665Z at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.<init>(TomcatURLStreamHandlerFactory.java:121) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011995336Z at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getInstanceInternal(TomcatURLStreamHandlerFactory.java:52) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011996896Z at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.register(TomcatURLStreamHandlerFactory.java:73) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.011998451Z at org.apache.catalina.webresources.StandardRoot.registerURLStreamHandlerFactory(StandardRoot.java:699) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.012001313Z at org.apache.catalina.webresources.StandardRoot.initInternal(StandardRoot.java:686) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.012002843Z at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ~[tomcat-embed-core-10.1.10.jar!/:na]
2023-06-23T20:37:35.012004347Z ... 48 common frames omitted
I was trying to configure reload live of my spring boot application in docker and intellij.