2

我指的是 Benjamin Muschko 的Gradle-Docker 插件

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

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

我可以通过发出 a 手动执行此操作,docker-machine ip <machineName>但我需要通过 gradle 以编程方式执行此操作,以便我可以从 gradle 运行我的应用程序,这将:

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

是否可以以通用方式做到这一点,以便在 Mac Os XLinux 下工作?

4

1 回答 1

1

基本上,是的。它可以以编程方式完成。您需要在 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"
   }
}
于 2015-08-14T10:12:56.093 回答