検索
ホームページJavaDocker Compose + Spring Boot + Postgres 接続

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 ファイルで定義されています。 リーリー

この時点で、Spring Boot アプリケーションを Spring Suite を通じてローカルで実行でき、すべてが正常に動作します。次に、Spring Boot アプリケーションを Docker イメージとして追加したいと思います。まず、次のようにプロジェクト ディレクトリに Dockerfile を作成しました。 リーリー

次に、

mvn clean

がリリースされているプロジェクト ディレクトリに移動し、次に mvn install を実行します。次に、docker build -f Dockerfile -t manager . を実行し、その後に docker tag 9c6b1e3f1d5e myuser/manager:latest (ID は正しいです) を実行します。最後に、既存の docker-compose.yml ファイルを次のように編集しました: リーリー ただし、

sudo docker-compose -f docker-compose.yml up

コマンドを発行すると、データベースは再び正常に起動しますが、エラーが発生し、Web アプリケーションのコード 1 で終了します。セクション 。問題は接続文字列です。何か別のものに変更する必要があると思いますが、何を変更すべきかわかりません。次のエラー メッセージが表示されます: リーリー ###何か案は?

解決策

各コンテナには独自のネットワーク インターフェイスと独自のローカル ホストがあります。そこで、Java が Postgres を指す方法を変更します。 リーリー ### に: ### リーリー

db

は正しい 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: {}

私も同じ問題を抱えていましたが、それを理解して解決するまでに時間がかかりました: リーリー 誰もが理解できるようにすべてのプロパティを示します。

application.properties:

リーリー

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 サイトの他の関連記事を参照してください。

声明
この記事はstackoverflowで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター