docker-composeでPostgreSQLを使用するSpringBootアプリケーションを構築しています。を使用してコンテナを実行するとdocker-compose up --build
、PostgreSQLコンテナのホスト名が見つからないため、SpringBootアプリケーションを起動できません。
FROM maven:3.6.3-openjdk-14-slim AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
RUN mvn -f /usr/src/app/pom.xml clean package
FROM openjdk:14-slim
COPY --from=build /usr/src/app/target/server-0.0.1-SNAPSHOT.jar /usr/app/server-0.0.1-SNAPSHOT.jar
EXPOSE 9000
ENTRYPOINT ["java","-jar","/usr/app/server-0.0.1-SNAPSHOT.jar"]
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: my_db
ports:
- "5432:5432"
volumes:
- db-data:/var/lib/postgresql/data
networks:
- db-network
restart: always
server:
build: './server'
depends_on:
- db
restart: always
ports:
- "9000:9000"
networks:
- db-network
volumes:
- ./server:/server
networks:
db-network:
volumes:
db-data:
spring.datasource.url=jdbc:postgresql://db:5432/my_db
spring.datasource.username=postgres
spring.datasource.password=postgres
Caused by: java.net.UnknownHostException: db
私の推測では、docker-composeの仮想ネットワークは、Spring BootDockerfileのビルド段階ではまだ作成されていません。この問題を解決する方法について何かアイデアはありますか?
この投稿は私の問題を完全に解決しました。Mavenが.jarファイルのビルド中にデータベースへの接続を確立しようとしていたことが判明しました。私がしなければならなかったのは、この行でDockerfileを変更することだけRUN mvn -f /usr/src/app/pom.xml clean package -DskipTests
です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加