Sha256: e18fd910c462acab1536bc441b682a12dcd1fc88ea1af89af5bdd0dd2cda7be4

Contents?: true

Size: 1.45 KB

Versions: 279

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

require 'eac_docker/executables'
require 'eac_ruby_utils/core_ext'

module Avm
  module Docker
    class Container
      enable_speaker
      common_constructor :instance

      def remove
        ::EacDocker::Executables.docker.command.append(
          ['rm', '--force', instance.docker_container_name]
        ).system!
      end

      def run(options = {})
        infov 'Container name', instance.docker_container_name
        infov 'Container exist?', instance.docker_container_exist?
        remove if options[:clear] && instance.docker_container_exist?
        if instance.docker_container_exist?
          run_start
        else
          run_run(options)
        end
      end

      def run_run(options)
        infom "\"docker run #{instance.docker_container_name}...\""
        ::EacDocker::Executables.docker.command.append(run_run_arguments(options)).system!
      end

      def run_start
        infom "\"docker start #{instance.docker_container_name}...\""
        ::EacDocker::Executables.docker.command.append(run_start_arguments).system!
      end

      def run_run_arguments(options)
        entrypoint_args = options[:entrypoint_args].if_present([])
        ['run', '-it', '--name', instance.docker_container_name] + instance.docker_run_arguments +
          [instance.docker_image.tag] + entrypoint_args
      end

      def run_start_arguments
        ['start', '-ai', instance.docker_container_name]
      end
    end
  end
end

Version data entries

279 entries across 279 versions & 3 rubygems

Version Path
avm-0.94.1 lib/avm/docker/container.rb
eac_tools-0.98.0 sub/avm/lib/avm/docker/container.rb
avm-0.94.0 lib/avm/docker/container.rb
eac_tools-0.94.0 sub/avm/lib/avm/docker/container.rb
avm-0.93.0 lib/avm/docker/container.rb
eac_tools-0.92.0 sub/avm/lib/avm/docker/container.rb
avm-0.92.0 lib/avm/docker/container.rb
eac_tools-0.91.0 sub/avm/lib/avm/docker/container.rb
avm-0.90.1 lib/avm/docker/container.rb
eac_tools-0.87.1 sub/avm/lib/avm/docker/container.rb
avm-0.90.0 lib/avm/docker/container.rb
eac_tools-0.87.0 sub/avm/lib/avm/docker/container.rb
avm-0.89.0 lib/avm/docker/container.rb
eac_tools-0.86.12 sub/avm/lib/avm/docker/container.rb
avm-0.88.0 lib/avm/docker/container.rb
eac_tools-0.86.11 sub/avm/lib/avm/docker/container.rb
avm-0.87.0 lib/avm/docker/container.rb
eac_tools-0.86.8 sub/avm/lib/avm/docker/container.rb
avm-0.86.2 lib/avm/docker/container.rb
eac_tools-0.86.7 sub/avm/lib/avm/docker/container.rb