New install won't bootstrap; gem update socket error?

I’ve followed the instructions for installing Discourse using Docker and I can’t get it to bootstrap. I keep getting:

FAILED
--------------------
RuntimeError: cd /var/www/discourse && gem update bundler failed with return #<Process::Status: pid 273 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:105:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "chown -R discourse $home"]}
164503c2550ef9566b6dea6a4bebb49a79482f0e1f4b00e40f444981e3245863
FAILED TO BOOTSTRAP

It seems like a lot of these issues are related to parsing the config file, but I’ve copied the standalone.yml and have changed only the bare minimum. I’ve tried several variations of modifications to the config and the error is identical every time, making me think it’s not the cause. I notice further up in the console window, I get:

I, [2015-02-01T14:43:31.708069 #42]  INFO -- : > cd /var/www/discourse && gem update bundler
ERROR:  While executing gem ... (SocketError)
    getaddrinfo: Name or service not known

This sort of makes me wonder if it’s a network issue, but I can’t imagine what. If anyone could help point me in the right direction, I’d be very grateful!

Does this persist? Is DNS set up right in docker?

Unfortunately, this problem remains. This is being done on Ubuntu server 14.04 LTS that is configured with a static ip and static DNS servers. The computer itself is resolving both internal and external IPs from DNS names normally.

Are you suggesting that Docker has it’s own DNS settings to configure? I don’t even know what address the bootstrapper is attempting to reach.

try:

docker run -it --rm ubuntu bin/bash
% ping google.com 

you can force a dns if needed in the docker conf https://docs.docker.com/reference/commandline/cli/#daemon

I’m a bit confused. Am I supposed to run one after the other? The first line downloads something then ends with:

FATA[0169] Error response from daemon: Cannot start container 82f48b4e1af6f060015ab6ccae05dae74708e2e1d1cf1b76b96e8fc6eda3f70e: exec: "bin/base": stat bin/base: no such file or directory

The second line doesn’t work, but I’m assuming that’s because the first line didn’t work right. Also, I had to prepend the command with sudo to make it work. I’m assuming that was the intent.

sorry I meant bin/bash … typo

Ah, yeah the command works now. It takes me to a new prompt and pinging google.com from this prompt works normally as well. Maybe I’ll just redirect this installation to google DNS and see if it’ll work. I don’t think this particular server will necessarily benefit from internal DNS.

Configuring Ubuntu’s DNS settings to Google’s DNS server (8.8.8.8) resolved this issue and the bootstrap worked perfectly. I guess I’ll just chock this one up to “DNS weirdness” and move on.

Any insight into where the script was trying to connect so that I can make sure things are right with my DNS servers?

First guess would be a connection to rubygems.org.