Could not resolve host: github.com for SamSaffron/pups.git

Hi all -

We’re enjoying discourse thus far. I’m having an issue with running a rebuild of the docker container. The container won’t rebuild because for some reason it can’t resolve github.com. I know the host system (debian jessie) can resolve at that time via dig && ping. However if I issue a systemctl restart docker the issue goes away.

I turned to the goog or alphabet machine which suggested starting the docker daemon using the goog’s dns which I’ve done and confirmed that it seems to have taken via a systemctl status docker.

I’ve been able to reproduce on a debian droplet and a virtual box vm.

Also I’ve been able to successfully pull a Ubuntu image, and run the container.

I’m not sure if there’s something in launcher or any other suggestions? Working off of git master, and is up to date.

shortlist:

  • Debian Jessie Kernel 3.16
  • Docker version 1.6.2, build 7c8fca2

launch rebuild app

root@alpha:/var/discourse# ./launcher rebuild app
Ensuring discourse docker is up to date
Fetching origin
Discourse Docker is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 10 app
app
cd /pups && git pull && /pups/bin/pups --stdin
fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Could not resolve host: github.com
210c421dbe03e0339d110f1eec9eb3c985b0a0d4e32709d569c9cd1f235a7964
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

systemctl status - shows --dns

root@alpha:/var/discourse# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled)
   Active: active (running) since Thu 2015-08-13 03:42:17 UTC; 26min ago
     Docs: http://docs.docker.com
 Main PID: 22232 (docker)
   CGroup: /system.slice/docker.service
           └─22232 /usr/bin/docker -d -H fd:// --dns 8.8.8.8 --dns 8.8.4.4

Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="+job wait(7d602b0addff82e7626b659c5e30131a11ab7f35034198983a19e2b8861111b5)"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="-job wait(7d602b0addff82e7626b659c5e30131a11ab7f35034198983a19e2b88... = OK (0)"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="DELETE /v1.18/containers/7d602b0addff82e7626b659c5e30131a11ab7f3503...8861111b5"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="+job rm(7d602b0addff82e7626b659c5e30131a11ab7f35034198983a19e2b8861111b5)"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="+job log(destroy, 7d602b0addff82e7626b659c5e30131a11ab7f35034198983...e:1.0.12)"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="-job log(destroy, 7d602b0addff82e7626b659c5e30131a11ab7f35034198983... = OK (0)"
Aug 13 04:03:40 alpha docker[22232]: time="2015-08-13T04:03:40Z" level=info msg="-job rm(7d602b0addff82e7626b659c5e30131a11ab7f35034198983a19e2b8861... = OK (0)"
Aug 13 04:04:15 alpha docker[22232]: time="2015-08-13T04:04:15Z" level=info msg="GET /v1.18/containers/json"
Aug 13 04:04:15 alpha docker[22232]: time="2015-08-13T04:04:15Z" level=info msg="+job containers()"
Aug 13 04:04:15 alpha docker[22232]: time="2015-08-13T04:04:15Z" level=info msg="-job containers() = OK (0)"
Hint: Some lines were ellipsized, use -l to show in full.

docker info

root@alpha:/var/discourse# docker info
Containers: 3
Images: 18
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 24
 Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
CPUs: 1
Total Memory: 2.879 GiB
Name: alpha
ID: WF4H:KABY:JPTX:RW2U:FWCT:PNKZ:DR2P:2ZFE:ZLUD:AB4R:D3CH:EXCA
WARNING: No memory limit support
WARNING: No swap limit support

edit: formatting fix code block

This is very likely the solution

Hi @sam thanks for taking the time to review.
I have that option uncommented in /etc/defaults/docker, and I’ve restarted the docker service many times.

To clarify, after restarting the docker service the laucher rebuild will work once, after that I have to restart the service.

You can see this via my systemd status.

CGroup: /system.slice/docker.service
           └─22232 /usr/bin/docker -d -H fd:// --dns 8.8.8.8 --dns 8.8.4.4

Same issue, I went to add the cloudflare template and when rebuilding it could not resolve github.com.

I have already tried the solution of using googles DNS servers in dockers configuration file with no success.

doing ping github.com works but again, it cant seem to resolve when rebuilding.

Here is the error:

Here is me pinging github.com
Imgur: The magic of the Internet

Interestingly though, when I ping6 github.com I of course do not recieve a response because github does not have AAAA records i believe.
Imgur: The magic of the Internet

Any idea how to fix this?

This isn’t a Discourse problem, it’s a Docker problem. You’ll probably get more knowledgeable help at the Docker support forums (which, helpfully, also run Discourse).

I figured out the issue and solution to this problem at least for me.

The issue was that Docker uses 8.8.8.8 and 8.8.4.4 as its DNS and I had an OVH network based firewall blocking ALL IPv4 traffic that did not match port 80, 443, and a few other specific rules. I had to authorize IPv4 traffic for 8.8.8.8 and 8.8.4.4

최신 discourse git에서도 비슷한 문제를 겪고 있습니다. 시스템 업데이트와/또는 웹 UI를 통한 discourse 업데이트를 수행한 후부터 이 문제가 발생하기 시작했습니다. 이제 앱을 다시 빌드하려고 하면 다음과 같은 오류가 표시됩니다:

[root@forum /var/discourse]# ./launcher rebuild app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
fatal: unable to access 'https://github.com/discourse/pups.git/': Could not resolve host: github.com
8f082ebcb977f9efafbdbff15ab69e8d06c0a7e2cb99410f85e1f90b03ae733b
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

github.com과 8.8.8.8에 ping을 보낼 수 있으며, /etc/default/docker 파일을 편집하여 DNS 옵션을 전환해 보았습니다: DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

어디서부터 계속 조사해야 할까요?

이것은 최신 업데이트가 적용된 Ubuntu 18.04입니다.

gekkonen와 동일한 오류가 발생하고 있습니다. 최신 Discourse 버전으로 업그레이드를 시도한 후 이러한 문제가 생겼습니다.

기본 브리지 네트워크에서 Docker가 인터넷에 전혀 접근할 수 없는 것 같습니다:

docker run -it --net=bridge --rm busybox ping -c 1 github.com
ping: bad address 'github.com'

호스트 네트워크를 강제 사용하면 인터넷에 접근할 수 있습니다:

docker run -it --net=host --rm busybox ping -c 1 github.com
PING github.com (140.82.112.4): 56 data bytes
64 bytes from 140.82.112.4: seq=0 ttl=53 time=6.902 ms

--- github.com ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 6.902/6.902/6.902 ms

또한 Ubuntu 18.04.4 LTS를 사용 중이며, Discourse 업그레이드 순서를 따르기 직전에 모든 패키지를 업그레이드하고 모든 보안 업데이트를 설치했습니다.

@gekkonen 제가 다시 실행되도록 해결했습니다. Docker에서 인터넷이 작동하도록 강제하기 위한 임시 조치로, docker0 네트워크를 “promiscuous”(무차별 수신) 모드로 구성할 수 있습니다:

[root@forum /var/discourse]# ifconfig docker0 promisc

이후 launcher를 사용하여 앱을 다시 빌드하면 Discourse 포럼이 정상적으로 작동해야 합니다. 단, 재부팅할 때마다 해당 명령어를 다시 실행해야 할 가능성이 높다는 점에 유의하세요.

이 방법으로 해결되는지 알려주세요.

아직 문제의 근본 원인은 정확히 파악하지 못했습니다.

네, 일단 DNS 문제를 해결하는 데 도움이 된 것 같습니다. 조언해 주셔서 감사합니다.

CentOS 8에서 이 오류는 RHEL7용 Docker RPM 패키지(아직 RHEL8용 패키지는 없음)가 새로운 nftables 기반 방화벽을 지원하지 않기 때문에 발생합니다. docker0 인터페이스에 대해 마스커레이딩(masquerading)을 수동으로 설정해야 합니다.

https://serverfault.com/questions/987686/no-network-connectivity-to-from-docker-ce-container-on-centos-8

이 해결책이 작동하는지 확인하고 싶습니다. 저는 Hetzner를 사용하는 CentOS 8을 사용 중입니다.

구체적으로 아래에 나열된 순서대로 다음 명령어를 실행했습니다. (출처) - @paulraines68님께 감사드립니다.

# Masquerading은 Docker의 수신 및 송신 트래픽을 허용합니다 (이 부분이 핵심입니다)
firewall-cmd --zone=public --add-masquerade --permanent

# 포트 80/443에 대한 수신 트래픽을 명시적으로 허용합니다 (새로운 내용은 아닙니다)
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=443/tcp

# 영구 규칙을 적용하기 위해 방화벽을 재로드합니다
firewall-cmd --reload