java 无法使用Docker容器与GraalVM一起运行SpringBoot - Postgres应用程序

np8igboo  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(250)

Windows 10上,我用IntelliJ Idea构建了一个Sping Boot 应用程序(在 Bootify.io 的帮助下)。
该应用程序连接到位于名为 Bootifytwo
Docker
container-postgres-1)中的Postgres数据库
出于使用和练习GraalVM的目的,我从 Oracle 下载了Docker映像。
从相应的GraalVM容器(container-graalvm-1)中,我已经能够生成target/bootifytwo可执行文件。
但是当我尝试运行它时,它给我一个数据库连接错误
我在下面列出了我执行的所有步骤,在一些图像之后。
(Note使用网络用于集装箱之间的相互通信;以及对于2个容器中的每一个使用体积)。
如能帮助解决问题,将不胜感激。

Copy folder C:\CODIGO\IDEA_PROJECTS\bootifytwo to C:\Volumenes-Docker\vol-graalvm-1\bootifytwo

docker network create red-postgres-graalvm-1

docker run --name contenedor-postgres-1 -p 5433:5432 --network red-postgres-graalvm-1 -v "C:\Volumenes-Docker\vol-postgres-1:/var/lib/postgresql/data" -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=bootifytwo -d postgres:13.9-alpine3.17

docker run --name contenedor-graalvm-1 -it --network=red-postgres-graalvm-1 -v "C:\Volumenes-Docker\vol-graalvm-1:/app" container-registry.oracle.com/graalvm/community:ol8-java17-22.3.0-b1 bash 

gu install native-image

cd bootifytwo

. ./mvnw native:compile -Pnative

docker start contenedor-graalvm-1
    
docker exec -it contenedor-graalvm-1 bash
                                        
./target/bootifytwo

vzgqcmou

vzgqcmou1#

postgresql数据库运行在你的应用程序之外的一个docker中,所以你不能连接到localhost。
更改设置以连接到contenedor-postgres-1

相关问题