Class: Kitchen::Docker::Container
- Inherits:
-
Object
- Object
- Kitchen::Docker::Container
- Defined in:
- lib/kitchen/docker/container.rb,
lib/kitchen/docker/container/linux.rb,
lib/kitchen/docker/container/windows.rb
Defined Under Namespace
Instance Method Summary collapse
- #create(state) ⇒ Object
- #destroy(state) ⇒ Object
- #hostname(state) ⇒ Object
-
#initialize(config) ⇒ Container
constructor
A new instance of Container.
- #upload(locals, remote) ⇒ Object
Methods included from Helpers::ImageHelper
#build_image, #image_exists?, #parse_image_id, #remove_image
Methods included from Helpers::ContainerHelper
#container_env_variables, #container_exec, #container_exists?, #container_ip_address, #copy_file_to_container, #create_dir_on_container, #dockerfile_path, #dockerfile_proxy_config, #dockerfile_template, #parse_container_id, #remote_socket?, #remove_container, #replace_env_variables, #run_container, #socket_uri
Methods included from Helpers::CliHelper
#build_copy_command, #build_env_variable_args, #build_exec_command, #build_powershell_command, #build_run_command, #config_to_options, #dev_null, #docker_command, #docker_shell_opts, #run_command
Methods included from Helpers::FileHelper
Constructor Details
#initialize(config) ⇒ Container
Returns a new instance of Container.
27 28 29 |
# File 'lib/kitchen/docker/container.rb', line 27 def initialize(config) @config = config end |
Instance Method Details
#create(state) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/kitchen/docker/container.rb', line 31 def create(state) if container_exists?(state) info("Container ID #{state[:container_id]} already exists.") elsif !container_exists?(state) && state[:container_id] raise ActionFailed, "Container ID #{state[:container_id]} was found in the kitchen state data, "\ 'but the container does not exist.' end state[:username] = @config[:username] end |
#destroy(state) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/kitchen/docker/container.rb', line 42 def destroy(state) info("[Docker] Destroying Docker container #{state[:container_id]}") if state[:container_id] remove_container(state) if container_exists?(state) if @config[:remove_images] && state[:image_id] remove_image(state) if image_exists?(state) end end |
#hostname(state) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/kitchen/docker/container.rb', line 51 def hostname(state) hostname = 'localhost' if remote_socket? hostname = socket_uri.host elsif @config[:use_internal_docker_network] hostname = container_ip_address(state) end hostname end |
#upload(locals, remote) ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/kitchen/docker/container.rb', line 63 def upload(locals, remote) files = locals files = Array(locals) unless locals.is_a?(Array) files.each do |file| copy_file_to_container(@config, file, remote) end files end |