サンプルコード
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.3.5') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* // Dockerfileはstageディレクトリに配置する def ant = new AntBuilder() ant.tar(destfile:"dockerfile.tar", basedir:"./stage") def host = "192.168.159.128" // replace this def port = 4243 // 作成するイメージの名前 def imageName = "apache2" def httpclient = new DefaultHttpClient() httpclient.withCloseable { def method = new HttpPost( "http://${host}:${port}/build?t=${imageName}&rm=1&nocache=1" ) // 作成したtarをpost def bae = new ByteArrayEntity(new File("dockerfile.tar").bytes) method.setEntity(bae) def response = httpclient.execute(method) response.withCloseable { System.out.println(response.getStatusLine()) def isr = new InputStreamReader(response.getEntity().getContent()) isr.eachLine { line -> def json = new JsonSlurper().parseText(line) println json.stream } } }Docker Remote APIを使用可能にする方法
ubuntuの場合、/etc/default/dockerに以下のように記述します。
DOCKER_OPTS="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d"
そのあと、dockerを再起動します。
sudo service docker restart
動作環境
Docker 1.3.1
0 件のコメント:
コメントを投稿