php エディター Xigua は本日、Docker Compose を使用して Spring Boot と Postgres を接続する方法に関するチュートリアルを提供します。 Docker Compose はマルチコンテナ Docker アプリケーションを定義して実行するためのツールであり、Spring Boot は Java アプリケーションを構築するためのフレームワークであり、Postgres は強力なリレーショナル データベースです。これら 3 つを組み合わせて使用することで、Spring Boot アプリケーションと Postgres データベースを含む開発環境を簡単に構築できます。このチュートリアルでは、アプリケーションの開発をすぐに開始できるように、3 つすべてを構成して接続する方法を段階的に学習します。
Postgres データベースで動作する Java Spring Boot アプリケーションがあります。どちらにも Docker を使用したいと考えています。最初は Postgres を Docker に入れて、docker-compose.yml
ファイルを次のように定義しました。
リーリー
sudo dockerd および
sudo docker-compose -f docker-compose.yml up を発行すると、データベースが起動されます。たとえば、
pgAdmin を使用し、サーバーとして
localhost を使用し、ポート
5432 を使用して接続できます。次に、Spring Boot アプリケーションでは、次のプロパティが
application.properties ファイルで定義されています。
リーリー
次に、
mvn clean がリリースされているプロジェクト ディレクトリに移動し、次に mvn install
を実行します。次に、docker build -f Dockerfile -t manager .
を実行し、その後に docker tag 9c6b1e3f1d5e myuser/manager:latest
(ID は正しいです) を実行します。最後に、既存の docker-compose.yml
ファイルを次のように編集しました:
リーリー
ただし、
コマンドを発行すると、データベースは再び正常に起動しますが、エラーが発生し、Web アプリケーションのコード 1 で終了します。セクション 。問題は接続文字列です。何か別のものに変更する必要があると思いますが、何を変更すべきかわかりません。次のエラー メッセージが表示されます:
リーリー
###何か案は?
は正しい Postgres IP に解決されます。
###ボーナス。 docker-compose を使用すると、イメージを手動でビルドする必要がありません。したがって、次のように変更します:
リーリー ### に: ###version: '2' services: db: container_name: sample_db image: postgres:9.5 volumes: - sample_db:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=sample - POSTGRES_USER=sample - POSTGRES_DB=sample - PGDATA=/var/lib/postgresql/data/pgdata ports: - 5432:5432 volumes: sample_db: {}
私も同じ問題を抱えていましたが、それを理解して解決するまでに時間がかかりました:
リーリー
誰もが理解できるようにすべてのプロパティを示します。
リーリー
docker-compose.yml:
リーリー
ローカル データベースを使用して Spring アプリケーションを起動するには、URL localhost を使用します。 データベースを使用してコンテナに接続するには、データベース サービスの「localhost」を変更する必要があります。私の場合は「localhost」を「
db
解決策:
SPRING_DATASOURCE_URL
docker-compose.yml に追加し、spring.datasource.url 接続値を書き換えます: リーリー これが人々の時間を節約するのに役立つことを願っています。
以上がDocker Compose + Spring Boot + Postgres 接続の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。