Packages

Docker remote API wrapper. This library support Containers, Images, Network, Volumes, etc...

Current section

Files

Jump to
docker_api lib docker_api image.ex
Raw

lib/docker_api/image.ex

defmodule DockerApi.Image do
defstruct name: nil, connection: %DockerApi.Connection{}
alias DockerApi.Connection
@moduledoc false
def list(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:json)
Connection.http_request(connection, :get, path, opts)
end
def build(connection \\ %DockerApi.Connection{}, opts) do
path = "/build"
Connection.http_request(connection, :post, path, opts)
end
def delete_build_cache(connection \\ %DockerApi.Connection{}, opts) do
path = "/build/prune"
Connection.http_request(connection, :post, path, opts)
end
def create(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:create)
Connection.http_request(connection, :post, path, opts)
end
def inspect(image = %DockerApi.Image{}, opts) do
path = path_for(image, :json)
Connection.http_request(image.connection, :get, path, opts)
end
def history(image = %DockerApi.Image{}, opts) do
path = path_for(image, :history)
Connection.http_request(image.connection, :get, path, opts)
end
def push(image = %DockerApi.Image{}, opts) do
path = path_for(image, :push)
Connection.http_request(image.connection, :post, path, opts)
end
def tag(image = %DockerApi.Image{}, opts) do
path = path_for(image, :tag)
Connection.http_request(image.connection, :post, path, opts)
end
def remove(image = %DockerApi.Image{}, opts) do
path = path_for(image)
Connection.http_request(image.connection, :delete, path, opts)
end
def search(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:search)
Connection.http_request(connection, :get, path, opts)
end
def delete_unused_image(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:prune)
Connection.http_request(connection, :post, path, opts)
end
def commit(connection \\ %DockerApi.Connection{}, opts) do
path = "/commit"
Connection.http_request(connection, :post, path, opts)
end
def export(image = %DockerApi.Connection{}, opts) do
path = path_for(image, :get)
Connection.http_request(image.connection, :get, path, opts)
end
def several(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:get)
Connection.http_request(connection, :get, path, opts)
end
def import(connection \\ %DockerApi.Connection{}, opts) do
path = path_for(:load)
Connection.http_request(connection, :post, path, opts)
end
defp path_for(image = %DockerApi.Image{}, path) do
"images/#{image.name}/#{path}"
end
defp path_for(image = %DockerApi.Image{}) do
"images/#{image.name}"
end
defp path_for(path) do
"images/#{path}"
end
end