instance method forward_ports

Ruby on Rails 2.9.0

Since v2.8.2 Last seen in v2.11.0 Private

Available in: v2.8.2 v2.9.0 v2.10.1 v2.11.0

Signature

forward_ports()

No documentation comment.

Source
# File lib/kamal/cli/build/port_forwarding.rb, line 27
    def forward_ports
      ready = Concurrent::CountDownLatch.new(hosts.size)

      @threads = hosts.map do |host|
        Thread.new do
          begin
            Net::SSH.start(host, ssh_options[:user], **ssh_options.except(:user)) do |ssh|
              ssh.forward.remote(port, "localhost", port, "127.0.0.1") do |remote_port, bind_address|
                if remote_port == :error
                  raise "Failed to establish port forward on #{host}"
                else
                  ready.count_down
                end
              end

              ssh.loop(0.1) do
                if @done
                  ssh.forward.cancel_remote(port, "127.0.0.1")
                  break
                else
                  true
                end
              end
            end
          rescue Exception => e
            error "Error setting up port forwarding to #{host}: #{e.class}: #{e.message}"
            error e.backtrace.join("\n")

            raise
          end
        end
      end

      raise "Timed out waiting for port forwarding to be established" unless ready.wait(30)
    end

Defined in lib/kamal/cli/build/port_forwarding.rb line 27 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Kamal::Cli::Build::PortForwarding

Type at least 2 characters to search.

↑↓ navigate · open · esc close