我从 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?
最佳答案
我发现 docker 使用 Unix 套接字进行不安全的本地通信,但它需要自定义证书进行网络通信/IP 套接字。插件 com.chrisgahlert.gradle-dcompose-plugin 使用网络通信,因此无法使其开箱即用(每个想要在本地运行它的开发人员都必须配置他的 docker) 。所以我停止使用该插件,转而从 Java 手动执行系统命令 (docker run ...
)。这样就不需要额外的安全配置。
关于java - 从 gradle 运行 docker : cannot pull image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787536/