2017-06-27 13 views
0

Dockerコンテナの内部にあるSpring起動アプリケーションを作成しています。 Spring Bootのコンテナと同じサーバー上に、SpringBootアプリケーションがアクセスできる必要があるMariaDBを保持する2番目のDockerコンテナです。Java内部でDocker環境変数を使用する

ホストマシン上でMariaDBコンテナとSpringブートアプリケーションを実行すると、アプリケーションは "jdbc:mariadb:// localhost:3306/fi?user = username & password = somepassword"でデータベースにアクセスできます。私は、アプリケーションがコンテナとして展開されたときに、このようにすることはできないことを理解しています。 run文に "--link mariadb:db"を含めて2つのコンテナを正常に "リンク"しました。ここで、mariadbはMariaDBコンテナの名前です。

アプリケーションコンテナが実行されているときに、「ping mariadb」コマンドを実行してMariaDBコンテナにpingを実行できます。私の質問は、どのようにmariadbコンテナ内のデータベースを呼び出すJavaファイル内のmariadb環境変数を使用するのですか?

ありがとうございます。

答えて

2

ここでの問題は、接続URLにmariadbの代わりにlocalhostを参照していることです。あなたはそれが自動的に適切なエントリが/etc/hosts

+0

に追加されますドッカコンテナをリンクすると

ので、接続URLは、JDBCのようになります。mariadb:// mariadb:?3306/Fiユーザー=ユーザー名&パスワード= somePassword? – dFrancisco

+2

リンク名がmariadbの場合 – jontro

+0

これは機能します!ありがとうございます – dFrancisco

関連する問題