Parent

Included Modules

Docker::Exec

This class represents a Docker Exec Instance.

Public Class Methods

create(options = {}, conn = Docker.connection) click to toggle source

Create a new Exec instance in a running container. Please note, this does NOT execute the instance - you must run start. Also, each instance is one-time use only.

@param options [Hash] Parameters to pass in to the API. @param conn [Docker::Connection] Connection to Docker Remote API

@return [Docker::Exec] self

# File lib/docker/exec.rb, line 20
def self.create(options = {}, conn = Docker.connection)
  container = options.delete('Container')
  resp = conn.post("/containers/#{container}/exec", {},
    :body => options.to_json)
  hash = Docker::Util.parse_json(resp) || {}
  new(conn, hash)
end

Public Instance Methods

resize(query = {}) click to toggle source

Resize the TTY associated with the Exec instance

@param query [Hash] API query parameters @option query [Fixnum] h Height of the TTY @option query [Fixnum] w Width of the TTY

@return [Docker::Exec] self

# File lib/docker/exec.rb, line 83
def resize(query = {})
  connection.post(path_for(:resize), query)
  self
end
start!(options = {}, &block) click to toggle source

Start the Exec instance. The Exec instance is deleted after this so this command can only be run once.

@param options [Hash] Options to dictate behavior of the instance @option options [Object] :stdin (nil) The object to pass to STDIN. @option options [TrueClass, FalseClass] :detach (false) Whether to attach

to STDOUT/STDERR.

@option options [TrueClass, FalseClass] :tty (false) Whether to attach using

a pseudo-TTY.

@return [Array, Array] The STDOUT and STDERR responses

# File lib/docker/exec.rb, line 39
def start!(options = {}, &block)

  # Parse the Options
  tty = !!options.delete(:tty)
  detached = !!options.delete(:detach)
  stdin = options[:stdin]

  # Create API Request Body
  body = {
    "Tty" => tty,
    "Detach" => detached
  }
  excon_params = { :body => body.to_json }

  msgs = Docker::Messages.new
  unless detached
    if stdin
      excon_params[:hijack_block] = Docker::Util.hijack_for(stdin, block,
        msgs, tty)
    else
      excon_params[:response_block] = Docker::Util.attach_for(block,
        msgs, tty)
    end
  end

  connection.post(path_for(:start), nil, excon_params)
  [msgs.stdout_messages, msgs.stderr_messages]
end
to_s() click to toggle source

Convert details about the object into a string

@return [String] String representation of the Exec instance object

# File lib/docker/exec.rb, line 8
def to_s
  "Docker::Exec { :id => #{self.id}, :connection => #{self.connection} }"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.