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
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 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
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
Generated with the Darkfish Rdoc Generator 2.