无法连接到github.com端口443:连接被拒绝,Bootstrap,Discourse Docker失败

在Discourse的本地安装中运行/var/docker ./launcher bootstrap app命令时,出现此错误。

 fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Failed to connect to github.com port 443: Connection refused FAILED TO BOOTSTRAP 

以下是我的containers/app.yml的内容。 我一直在使用本指南来尝试启动并运行。 我听说有人遇到HTTP连接问题,因为iptables -L包含一些阻止docker容器连接到互联网的规则。 但是就在下载图像之前。 所以我不明白。

 ## ## After making changes to this file, you MUST rebuild for any changes ## to take effect in your live Discourse instance: ## ## /var/docker/launcher rebuild app ## ## this is the all-in-one, standalone Discourse Docker container template templates: - "templates/cron.template.yml" - "templates/postgres.template.yml" - "templates/redis.template.yml" - "templates/sshd.template.yml" - "templates/web.template.yml" ## which TCP/IP ports should this container expose? expose: - "127.0.0.1:20080:80" # fwd host port 80 to container port 80 (http) - "2222:22" # fwd host port 2222 to container port 22 (ssh) params: ## Which Git revision should this container use? version: HEAD env: ## How many concurrent web requests are supported? ## With 2GB we recommend 3-4 workers, with 1GB only 2 # UNICORN_WORKERS: 3 ## ## List of comma delimited emails that will be made admin on signup DISCOURSE_DEVELOPER_EMAILS: <%= ENV['EMAIL_ADDRESS'] %> ## ## The domain name this Discourse instance will respond to DISCOURSE_HOSTNAME: 'localhost' ## ## The mailserver this Discourse instance will use DISCOURSE_SMTP_ADDRESS: smtp.gmail.com DISCOURSE_SMTP_PORT: 465 DISCOURSE_SMTP_USER_NAME: <%= ENV['GMAIL_USERNAME'] %> DISCOURSE_SMTP_PASSWORD: <%= ENV['GMAIL_PASSWORD'] %> ## ## the origin pull CDN address for this Discourse instance # DISCOURSE_CDN_URL: //discourse-cdn.example.com ## These containers are stateless, all data is stored in /shared volumes: - volume: host: /var/docker/shared/standalone guest: /shared ## The docker manager plugin allows you to one-click upgrade Discouse ## http://discourse.example.com/admin/docker hooks: after_code: - exec: cd: $home/plugins cmd: - git clone https://github.com/discourse/docker_manager.git ## Remember, this is YAML syntax - you can only have one block with a name run: - exec: echo "Beginning of custom commands" ## If you want to configure password login for root, uncomment and change: #- exec: apt-get -y install whois # for mkpasswd ## Use only one of the following lines: #- exec: /usr/sbin/usermod -p 'PASSWORD_HASH' root #- exec: /usr/sbin/usermod -p "$(mkpasswd -m sha-256 'RAW_PASSWORD')" root ## If you want to authorized additional users, uncomment and change: #- exec: ssh-import-id username #- exec: ssh-import-id anotherusername - exec: echo "End of custom commands" - exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Authorized SSH keys for this container:"; } NF>=2 {print $NF;}' 

你是在代理的背后? 你有没有检查你的DNS设置? 这是我为了使它在/etc/default/docker运行所必须做的:

 DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --dns xxxx" 

如果你不添加你的DNS(你可以用nslookupfind它),很可能你不能parsingGitHub的名字。 但是,由于您的连接尝试没有明确返回一个名称未解决,我不认为你在这里担心。 但奇怪的是,我不得不这样做才能使它工作。 剩下的我已经提到了在GitHub上填充的问题: https : //github.com/discourse/discourse_docker/issues/79

编辑:我纠正了这一点,没有ln,它应该阅读'在'。 正如我在给GitHub的问题中所说的那样,代码中缺less代理考虑。 但是,你有一个代理或直接访问networking? 我打赌你有一个代理。 如果是这样,请在我提供的链接中find我的解决scheme。 基本上,如果话语图像的环境variables中没有添加HTTP_PROXY,那么不会有任何依赖它的命令(如在gem命令的情况下)。

例:

 DISCOURSE_SMTP_ADDRESS: smtp.mandrillapp.com # (mandatory) HTTP_PROXY: http://xxxx:3128/ # my add DISCOURSE_SMTP_PORT: 587 # (optional) DISCOURSE_SMTP_USER_NAME: 'xx@xx.com' # (optional) DISCOURSE_SMTP_PASSWORD: Password # (optional) 

另外,git有自己的指定代理的方法,所以我把它添加到脚本中让它运行。 否则,git会被卡住,当它试图从存储库中拉出(似乎是你的情况)时,会发生超时。

在话语的发射器脚本中replace:

 run_command="$run_command git pull &&" 

 run_command="$run_command git config --global http.proxy http://xxxx:3128/ && git pull &&" 

和/或(也应该工作,事实上,如果我记得正确,我不得不这样做…)

 /bin/bash -c "$run_command") \ 

 /bin/bash -c "git config --global http.proxy http://xxxx:3128/;$run_command") \ 

更清楚? 关于dns,docker在其configuration文件中configuration了很多东西。 但令我吃惊的是,代理configuration似乎从来没有被考虑到。然而,DNS部分是有趣的,因为我得到了名称parsing错误,尽pipe公共DNS已经configuration。 所以我添加了我公司的DNS,神奇地解决了这个问题。 但我不认为这是你的情况,我提到这个以防万一…

尝试在重试之前将您的SSH密钥添加到Github