Я хотел бы выполнить некоторые команды Докер, такие какВыполнение Docker команды с Gradle
docker login -u foo -p bar myregistry
docker build --pull=true -t myregistry/myimage path/to/dockerfile
docker push myregistry/myimage
Я пытался несколько плагинов для него, таких как this one, но ни один из них не был удовлетворительным, или, может быть, я что-то отсутствует. ..
Мой вопрос, что это лучший способ для запуска команды Docker внутри моего Gradle задач
Вот мой файл build.gradle и то, что я хотел бы, чтобы он сделал
import GenerateDockerFile
apply plugin : 'groovy'
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.4.7'
compile localGroovy()
compile gradleApi()
classpath 'com.bmuschko:gradle-docker-plugin:3.0.1'
}
def copyFiles() {
//Some stuff
}
def versionNumber(){
//Some stuff
}
def clean(){
exec {
executable "sh"
args "-c", "ls"
}
}
}
task build(){
copyFiles()
versionNumber()
def version = new File('tmp_version').text
def buildTag= ""
if (project.hasProperty('args')) {
buildTag = args
}
else{
buildTag = System.console().readLine 'Enter a build tag'
}
println "\nGenerating DockerFile for version $version with build tag $buildTag"
GenerateDockerFile.configure(version, buildTag);
println 'DockerFile generated'
//Execute docker commands here
// docker login ....
doLast {
clean()
}
}
Если возможно, что-то вроде exec sh, как в чистом методе, было бы идеально. Однако, если плагин может легко это сделать, это тоже нормально
Вы направляете это право, на самом деле я хотел бы что-то вроде этого, но я могу» t выполнить команду docker, поскольку Gradle не может ее найти, однако я становлюсь ближе –