Нагуглил конфиг и чуток адоптировал под себя, получилось так:
FROM gradle:8.5.0-jdk21 AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build --scan
FROM openjdk:22
EXPOSE 8181
COPY --from=build /home/gradle/src/build/libs/app.jar /app/
RUN bash -c 'touch /app/app.jar'
ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]
Однако при запуске я получаю такую вот ошибку
64.72 > Task :compileJava NO-SOURCE
64.72 > Task :classes
64.72 > Task :resolveMainClassName
67.73 > Task :bootJar
67.73 > Task :jar
67.73 > Task :assemble
70.42 > Task :compileTestKotlin
70.42 > Task :compileTestJava NO-SOURCE
70.42 > Task :testClasses UP-TO-DATE
74.22
74.22 > Task :test FAILED
74.22
74.22 ExchangeApplicationTests > contextLoads() FAILED
74.22 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180
74.22 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1775
74.22 Caused by: org.flywaydb.core.internal.exception.FlywaySqlException at JdbcUtils.java:60
74.22 Caused by: org.postgresql.util.PSQLException at ConnectionFactoryImpl.java:354
74.22 Caused by: java.net.UnknownHostException at NioSocketImpl.java:567
Как я понял flyway хочет подключиться к базе, которой на этапе сборки контейнера понятное дело нет.
В application.properties следующее
spring.jpa.hibernate.ddl-auto=none
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.url=jdbc:postgresql://pgsql/dbname
spring.datasource.username=какойтоюзер
spring.datasource.password=какойтопароль
Как можно решить данную проблему?)