使用gradle-docker-plugin将docker服务器IP设置为环境variables

我参考了Benjamin Muschko的Gradle-Docker插件 。

我使用Mac OS X,但我的一些同事使用Linux。

我想find一种方法来使用上面的插件来检索docker服务器IP,并将其设置为我的Spring Boot应用程序使用的环境variables。

我可以通过发出一个docker-machine ip <machineName>来手工完成,但是我需要通过gradle以编程的方式来完成这个工作,以便我可以从gradle运行我的应用程序,它将:

  • 检索docker服务器IP
  • 将其设置为一个envvariables(例如$DOCKER_IP
  • 然后,我的Spring Boot应用程序将使用该variables连接到Docker主机上的MysqlElasticsearch

这是可能的以通用的方式做到这一点,以便它可以在Mac OS X Linux下工作?

基本上,是的。 它可以通过编程完成。 您需要在gradle中执行命令以获取docker IP。 但是,不能在JVM语言中设置环境variables,可以使用例如系统属性。 以下片段可能会有所帮助:

 task setDockerIP << { def dockerIP = ['boot2docker', 'ip'].execute().text System.setProperty('dockerIP', dockerIP) } task printProp(dependsOn: 'setDockerIP') << { System.properties.each { println "$it.key -> $it.value" } }