简体   繁体   English

无法连接到github.com端口443:连接被拒绝,无法启动,话语Docker

[英]Failed to connect to github.com port 443: Connection refused, Failed to Bootstrap, Discourse Docker

Whilst running my ./launcher bootstrap app command from /var/docker on a local installation of Discourse, I get this error. 在本地安装的Discourse上从/var/docker ./launcher bootstrap app运行我的./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

The following is the contents of my containers/app.yml . 以下是我的containers/app.yml的内容。 I've been using this guide to try to get it up and running. 我一直在使用指南试图让它运行起来。 I've heard of some people having issues with HTTP connections refused due to iptables -L containing some rules blocking the docker container from connecting to the internet. 我听说有些人因为iptables -L包含阻止docker容器连接到互联网的规则而拒绝HTTP连接的问题。 But it moments before just downloaded an image. 但它刚刚下载图像。 So I don't understand. 所以我不明白。

##
## 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;}'

Are you behind a proxy ? 你是代理人吗? Have you checked your DNS settings ? 你检查过DNS设置了吗? This is what I had to do in order to make it run in /etc/default/docker : 这是我必须要做的,以使其在/etc/default/docker

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --dns x.x.x.x"

If you don't add your DNS (you can find it with nslookup ), chance are that you can't resolve the name of GitHub. 如果您不添加DNS(可以使用nslookup找到它),则可能无法解析GitHub的名称。 But as your attempt to connect does not return explicitly a name not resolved, I don't think you are concerned here. 但是,由于您尝试连接并未明确返回未解析的名称,我认为您并不担心这里。 But strangely, I had to do it to make it work. 但奇怪的是,我必须这样做才能让它发挥作用。 For the rest I already mentioned what to do in an issue filled on GitHub: https://github.com/discourse/discourse_docker/issues/79 对于其他人,我已经提到了在GitHub上填写的问题中要做什么: https//github.com/discourse/discourse_docker/issues/79

Edit: I corrected the point, there's no ln, it should read 'in'. 编辑:我纠正了这一点,没有ln,它应该是'in'。 As I said in my issue to GitHub, there's a lack of proxy consideration in code. 正如我在GitHub的问题中所说,代码中缺乏代理考虑。 But have you a proxy or a direct access to web ? 但是你有代理或直接访问网络? I bet you have a proxy. 我打赌你有代理人。 If so, take my solution in the link I provided. 如果是这样,请在我提供的链接中使用我的解决方案。 Basically, if HTTP_PROXY is not added in the environment variables of the image of discourse, no command that relies on it will work (like in the gem command case). 基本上,如果没有在话语图像的环境变量中添加HTTP_PROXY,那么依赖它的命令就不会起作用(就像在gem命令的情况下一样)。

Example: 例:

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

In addition, git has its own way of specifying proxy, so I add it in the script to make it run. 另外,git有自己的指定代理的方式,所以我在脚本中添加它以使其运行。 Otherwise, git will be stuck and timeout will occcur when it will try to pull from repository (seems to be your case). 否则,git将被卡住并且当它将尝试从存储库拉出时会发生超时(似乎是你的情况)。

Replacement in launcher script of discourse: 话语发射器脚本的替换:

run_command="$run_command git pull &&"

to

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

And/Or (should work too, and in fact if I recall correctly I had to do both...) 和/或(也应该工作,事实上,如果我没记错的话,我必须做两个......)

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

to

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

Clearer ? 更清楚? Concerning the dns, docker configure a lot of things in its configuration file. 关于dns,docker在其配置文件中配置了很多东西。 But to my surprise, the proxy configuration never seemed to be taken into account.Yet, the dns part was interesting as I got error of name resolution too, despite the public dns already configured. 但令我惊讶的是,代理配置似乎从未被考虑过。但是,dns部分很有趣,因为我得到了名称解析错误,尽管已经配置了公共DNS。 So I add the dns of my company, and magically it solved the problem. 所以我添加了我公司的dns,神奇地解决了这个问题。 But I don't think this is your situation, I mentioned this just in case... 但我不认为这是你的情况,我提到这是为了以防万一......

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法连接到 github.com 端口 443:终端 MacBook 中的连接被拒绝 - Failed to connect to github.com port 443: Connection refused in terminal MacBook 无法推送 - 无法连接到github.com端口443:连接被拒绝 - Could not push--Failed to connect to github.com port 443: Connection refused 无法连接到 github.com 端口 443:操作超时 - Failed to connect to github.com port 443: Operation timed out "连接github.com 443端口失败:超时" - Failed to connect to github.com port 443: Timed out 推送到远程存储库时“无法连接到 github.com 端口 443:连接超时” - "Failed to connect to github.com port 443: Connection timed out" when pushing to remote repository 错误:连接到github.com:8080失败;拒绝连接 - error: Failed connect to github.com:8080; Connection refused Git到GitHub-无法连接到端口443:连接被拒绝 - Git to GitHub - Failed to connect to port 443: Connection refused 在 AWS 实例中克隆 git repo? 我收到错误:无法连接到 github.com 端口 443:连接超时 - Cloning a git repo in AWS Instance? I get the error : Failed to connect to github.com port 443: Connection timed out 无法访问“ https://github.com/GladysProject/gladys/”:无法连接到github.com端口443:无主机路径 - unable to access 'https://github.com/GladysProject/gladys/': Failed to connect to github.com port 443: no route to host “致命的无法访问[路径]无法连接gihub.com端口443连接被拒绝”尝试连接github存储库-不使用代理 - “fatal unable access [path] Failed connect gihub.com port 443 Connection refused” Trying to connect github repository - NOT using a proxy
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM