从gradle运行docker:无法拉动图像

时间:2016-08-05 10:55:52

标签: java gradle docker

我从cmd行运行docker没有问题:

docker run -p 5432:5432 -it --rm postgres:9.5.2`

但是当我从gradle中使用dcompose plugin时,我得到了

Could not evaluate onlyIf predicate for task ':pullDatabaseImage'.
> Docker command failed: Certificate path (DOCKER_CERT_PATH) '/home/xxx/.docker/certs' doesn't exist.

我的配置:

plugins {
  id "com.chrisgahlert.gradle-dcompose-plugin" version "0.3.2"
}

dcompose {
    database {
        image = 'postgres:9.5.2'   // Required
    }
}

test {
    dependsOn startDatabaseContainer
    finalizedBy removeDatabaseContainer
}

怎么了?我如何从gradle运行docker?

2 个答案:

答案 0 :(得分:1)

我发现docker使用Unix套接字进行不安全的本地通信,但它需要自定义证书用于网络通信/ IP套接字。插件com.chrisgahlert.gradle-dcompose-plugin使用网络通信,因此没有办法让它开箱即用(每个想在本地运行它的开发人员都必须配置他的docker)。所以我停止使用该插件并切换到从Java手动执行系统命令(docker run ...)。这样就不需要额外的安全配置了。

答案 1 :(得分:0)

对于迟到的回复感到抱歉。

尝试使用最新的插件版本(目前为0.8.0)。这使用最新的docker-java库,它负责与Docker主机通信。在这个版本中,应该可以连接到本地unix套接字。

如果这没有帮助:尝试取消设置环境变量unset DOCKER_TLS_VERIFY