我是Docker和fabric8的maven-docker-plugin
的新手。我想用兩個容器做一些集成測試,一個用我的webapp部署,另一個用數據庫。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
命令,該命令能夠使用使用maven-docker-plugin
這兩個參數,其中${dbhost}
和${dbport}
應該是具有數據庫容器IP地址和暴露端口的兩個maven屬性。 我該如何在手邊的示例中表達一個運行命令,並使用fabric8 maven-docker-plugin
讓我的webapp知道數據庫IP地址?
更新: 我清理了一些混亂,我在我的pom.xml和dockerfile中做了。現在我可以通過使用環境變量來傳遞參數。 剩下的唯一問題是我無法獲取數據庫容器的IP地址,即使它被鏈接到webapp容器的<run>...</run>
配置。
這是我的項目的pom。 我正在使用maven 3.3.9
,docker 1.12.5
和fabric8的maven-docker-plugin 0.19.0
。
使用'--name'命名一個容器,使用'--link'將一個命名的外部容器鏈接到一個容器。如果外部容器已鏈接,則可以使用外部容器的名稱作爲它的IP地址。 –
@ 200OK你好!我可以運行這兩個容器並通過docker-cli運行測試。我想通過maven來自動運行集成測試。我更新我的問題,所以應該更清楚。謝謝你的評論。 – Francesco