class Minke::Tasks::Shell

Public Instance Methods

run(args = nil) click to toggle source
# File lib/minke/tasks/shell.rb, line 5
def run args = nil
  @logger.info "## Run shell" 
  @logger.info "## Run application with docker compose"

  compose_file = @config.compose_file_for(@task_name)
  compose_file = File.expand_path(compose_file)
  compose = @docker_compose_factory.create compose_file unless compose_file == nil

  run_with_block do |pre_tasks, post_tasks|
    begin
      services = create_list_of_links(compose.services)
      compose.up
      pre_tasks.call

      @logger.info "## Shell open to build container"
      run_command_in_container(['/bin/sh','-c','ls && /bin/sh'], true, services, @task_settings.ports)
    rescue SystemExit, Interrupt
      @logger.info "Stopping...."
      raise SystemExit
    ensure
      compose.down
      post_tasks.call
    end
  end
end