使用gradle docker插件将docker服务器IP设置为环境变量

使用gradle docker插件将docker服务器IP设置为环境变量,gradle,docker,spring-boot,docker-machine,Gradle,Docker,Spring Boot,Docker Machine,我指的是本杰明·马斯奇科 我使用MacOSX,但我的一些同事使用Linux 我想找到一种使用上述插件的方法来检索docker服务器IP,并将其设置为Spring Boot应用程序使用的环境变量 我可以通过发布一个docker机器ip手动完成,但我需要通过gradle以编程方式完成,这样我就可以从gradle运行我的应用程序,它将: 检索docker服务器IP 将其设置为环境变量(例如,$DOCKER\u IP) 然后,我的Spring Boot应用程序将使用该变量连接到docker主机上的My

我指的是本杰明·马斯奇科

我使用MacOSX,但我的一些同事使用Linux

我想找到一种使用上述插件的方法来检索docker服务器IP,并将其设置为Spring Boot应用程序使用的环境变量

我可以通过发布一个
docker机器ip
手动完成,但我需要通过gradle以编程方式完成,这样我就可以从gradle运行我的应用程序,它将:

  • 检索docker服务器IP
  • 将其设置为环境变量(例如,
    $DOCKER\u IP
  • 然后,我的Spring Boot应用程序将使用该变量连接到docker主机上的MysqlElasticsearch

这是否可能以一种通用的方式实现,以便它在Mac Os X和Linux下工作?

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

task setDockerIP << {
   def dockerIP = ['boot2docker', 'ip'].execute().text
   System.setProperty('dockerIP', dockerIP)
}

task printProp(dependsOn: 'setDockerIP') << {
   System.properties.each {
      println "$it.key -> $it.value"
   }
}

task setdockrip非常感谢Opal。这是否可以移植到linux?它应该以完全相同的方式执行命令。。。我相信linux没有使用docker机器ip之类的东西。那么,使用linux的人将如何检索docker主机的IP?在linux环境中,docker主机的IP是运行docker的机器的IP。因此,在这种情况下,您只需要获得工作站的IP。看:对吗?你是说
localhost