ruby/open-uri

Doesn't work on alpine linux sometimes

Closed this issue · 1 comments

Paxa commented

Not sure where to report this, I experience issue getaddrinfo: Try again (SocketError) for some host on alpine linux inside docker container

irb(main):004:0> OpenURI.open_uri('http://github.com')
/usr/lib/ruby/3.2.0/net/http.rb:1603:in `initialize': Failed to open TCP connection to github.com:80 (getaddrinfo: Try again) (SocketError)
	from /usr/lib/ruby/3.2.0/net/http.rb:1603:in `open'
	from /usr/lib/ruby/3.2.0/net/http.rb:1603:in `block in connect'
	from /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
	from /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
	from /usr/lib/ruby/3.2.0/net/http.rb:1601:in `connect'
	from /usr/lib/ruby/3.2.0/net/http.rb:1580:in `do_start'
	from /usr/lib/ruby/3.2.0/net/http.rb:1569:in `start'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:334:in `open_http'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:770:in `buffer_open'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:220:in `block in open_loop'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:218:in `catch'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:218:in `open_loop'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:158:in `open_uri'
	from (irb):4:in `<main>'
	from /usr/lib/ruby/gems/3.2.0/gems/irb-1.6.2/exe/irb:11:in `<top (required)>'
	from /usr/bin/irb:25:in `load'
	... 1 levels...
/usr/lib/ruby/3.2.0/net/http.rb:1603:in `initialize': getaddrinfo: Try again (SocketError)
	from /usr/lib/ruby/3.2.0/net/http.rb:1603:in `open'
	from /usr/lib/ruby/3.2.0/net/http.rb:1603:in `block in connect'
	from /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
	from /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
	from /usr/lib/ruby/3.2.0/net/http.rb:1601:in `connect'
	from /usr/lib/ruby/3.2.0/net/http.rb:1580:in `do_start'
	from /usr/lib/ruby/3.2.0/net/http.rb:1569:in `start'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:334:in `open_http'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:770:in `buffer_open'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:220:in `block in open_loop'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:218:in `catch'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:218:in `open_loop'
	from /usr/lib/ruby/gems/3.2.0/gems/open-uri-0.4.1/lib/open-uri.rb:158:in `open_uri'
	from (irb):4:in `<main>'
	from /usr/lib/ruby/gems/3.2.0/gems/irb-1.6.2/exe/irb:11:in `<top (required)>'
	from /usr/bin/irb:25:in `load'
	... 1 levels...

but it works for google

OpenURI.open_uri('https://google.com/')
=> #<File:/tmp/open-uri20240519-5860-i3gd1i>

Tried with ruby official image, and apline image with apk add ruby

hsbt commented

Unfortunately, Ruby don't support alpine officially. You may ask that to https://github.com/docker-library/ruby.

I recommend to use debian or ubuntu image for using the Ruby language.