Dockerとfabric8の初心者です。maven-docker-plugin
です。 2つのコンテナを使用して、Webアプリケーションをデプロイし、データベースを1つ使用して、いくつかの統合テストを行いたいと思います。maven-docker-plugin:コンテナのIPアドレスを取得する方法
UPDATE: 私は、これらのコマンドを使用して、両方のコンテナを実行することができます。
docker run --name db -p 27017:27017 mongo
docker run --name as -p 8080:8080 --link db mycustom/wildfly /opt/jboss/wildfly/standalone/bin/standalone.sh -b 0.0.0.0 -Ddbhost=172.17.0.2 -Ddbport=27017
この私が使用するdockerfile:
FROM fpezzati/wildflyogm
ARG webapp
COPY $webapp /opt/jboss/wildfly/standalone/deployments/
EXPOSE 8080
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0"]
を今、私はfabric8 maven-docker-plugin
を使用して、両方のコンテナを実行したいです。この時点で、run
コマンドを表現する方法を理解する必要があります。-Ddbhost=${dbhost} -Ddbport=${dbport}
はmaven-docker-plugin
です。ここで、${dbhost}
と${dbport}
は、データベースコンテナのIPアドレスと公開ポートを持つ2つのプロパティです。 手作業で行っているようにrunコマンドを表現し、fabric8を使用してデータベースのIPアドレスをWebアプリケーションに認識させるにはどうすればよいですか?maven-docker-plugin
?
更新: 私はpom.xmlとdockerfileでいくつか混乱を取り除いています。今私は環境変数を使って引数を渡すことができます。 残っている唯一の問題は、Webコンテナの<run>...</run>
設定にリンクされていても、データベースコンテナのIPアドレスを取得できないことです。
ここは私のプロジェクトのpomです。 私はmaven 3.3.9
,docker 1.12.5
、ファブリック8のmaven-docker-plugin 0.19.0
を使用しています。
コンテナに名前を付けるには '--name'を使用し、指定された外部コンテナをコンテナにリンクするには' --link'を使います。外部コンテナがリンクされている場合は、外部コンテナの名前をIPアドレスとして使用できます。 –
@ 200OKこんにちは!私は両方のコンテナを走らせて、docker-cliでテストを実行できます。私は自動的に統合テストを実行するためにmavenでそれをやりたい質問が更新され、より明確になるはずです。ご意見ありがとうございます。 – Francesco