2016-12-28 2 views
0

Ich habe bmuschko/gradle-docker-plugin in eine Gradle build.gradle-Datei hinzugefügt, um das Kopieren einer WAR-Datei zu automatisieren ein laufender Behälter. Der Dateikopierbefehl dieses Plug-ins Kopieren in eine Docker Instanz funktioniert perfekt zu einer Standard-Remote-Docker Maschine mit folgenden Konfiguration:Wie bmuschko/gradle-docker-plugin zu automatisieren verwenden Kopieren von Datei in ein laufendes docker in IBM Containern mit Gradle

docker { 
    url = 'https://IP:2376' 
    certPath = new File('/Users/USER/.docker/machine/machines/MACHINE') 
} 

Ich brauche das gleiche mit IBM Containern Dienst zu tun. Dieser Service unterstützt den Standard-Docker-Befehl. Ich brauche nur zu tun:

export DOCKER_HOST=tcp://containers-api.eu-gb.bluemix.net:8443 
export DOCKER_CERT_PATH=/Users/USER/.ice/certs 
export DOCKER_TLS_VERIFY=1 

Und jeden Docker Befehl funktioniert mit IBM Container Service, aber nicht die gradle Aufgabe, die zuvor arbeitet. Wenn ich diese Parameter (beide mit tcp: // oder https: // in Host-URL-Parameter) und auch ausführen ich die IBM Container Ausfuhren, wenn ich gradle ausführen erhalte ich:

:copyBootJarsToDocker FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':copyBootJarsToDocker'. 
> <html> 
    <head><title>400 The plain HTTP request was sent to HTTPS port</title></head> 
    <body bgcolor="white"> 
    <center><h1>400 Bad Request</h1></center> 
    <center>The plain HTTP request was sent to HTTPS port</center> 
    <hr><center>nginx</center> 
    </body> 
    </html> 

Gibt es trotzdem, dies zu konfigurieren Plugin, damit es mit dem Docker-Service von IBM Containers funktioniert, damit ich meine Anwendungsupdates automatisieren kann?

dank

Antwort

0

Ich weiß nicht, das gradle Plugin, aber ich festgestellt, dass, wenn Sie die Docker Eigenschaften exportieren, die Sie angegeben haben, dann die folgenden Befehl funktioniert völlig in Ordnung, gegen die (auch laufen ‚cf ic init‘ gefunden) IBM Containerdienst.

Docker cp some-File.txt my-Container: temp/some-datei.txt

Dies zeigt, dass der IBM Container-Dienst den Docker Remote-API ist zu respektieren.

Ich bin mir nicht sicher, warum Sie "https" für die Docker-URL verwendet haben. Haben Sie versucht, die genaue URL zu verwenden, die für DOCKER_HOST erwartet wird? Insbesondere verwenden Sie tcp://containers-api.eu-gb.bluemix.net:8443

Verwandte Themen