2014-07-21 436 views
3

雖然在Discourse的本地安裝上運行我的./launcher bootstrap app命令/var/docker,但出現此錯誤。無法連接到github.com端口443:連接被拒絕,Bootstrap失敗,Discourse Docker

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的內容。我一直在使用this指南來嘗試啓動並運行。我聽說有些人因爲連接到互聯網而被拒絕,因爲iptables -L包含一些rules blocking the docker container而被拒絕。但是就在下載圖像之前。所以我不明白。

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

回答

2

你是在代理的背後嗎?你有沒有檢查過你的DNS設置? 這是我不得不爲了做到使其在/etc/default/docker運行:

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

如果不添加DNS(你可以用nslookup找到它),機會是你無法解決GitHub的名稱。但是,由於您的連接嘗試沒有明確返回名稱未解決,我不認爲您在這裏擔心。但奇怪的是,我不得不這樣做才能使它工作。 因爲我已經提到如何在充滿GitHub上的問題做休息: https://github.com/discourse/discourse_docker/issues/79

編輯: 我糾正了點,沒有LN,應該「在」讀。 正如我在發給GitHub的問題中所說的,代碼中缺少代理考慮。 但你有一個代理或直接訪問網絡?我敢打賭你有一個代理。 如果是這樣,請在我提供的鏈接中找到我的解決方案。基本上,如果話語圖像的環境變量中沒有添加HTTP_PROXY,則不會有依賴它的命令(如在gem命令的情況下)。

例子:

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: '[email protected]'  # (optional) 
DISCOURSE_SMTP_PASSWORD: Password    # (optional) 

此外,混帳都有自己的指定代理的方式,所以我將其添加在腳本,使其運行。否則,當git試圖從倉庫中取出時(看起來是你的情況),git會被卡住並且發生超時。

話語的啓動程序腳本的更換:

run_command="$run_command git pull &&" 

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

和/或(應太,而事實上,如果我沒有記錯我不得不這樣做既...)

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

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

更清晰? 關於dns,docker在配置文件中配置了很多東西。但令我吃驚的是,代理配置似乎從來沒有被考慮到。然而,儘管已經配置了公共dns,但dns部分也很有趣,因爲我也遇到了名稱解析錯誤。所以我添加了我公司的DNS,神奇地解決了這個問題。但我不認爲這是你的情況,我提到這一點以防萬一......

+0

那麼,它工作? – redlabo

+0

今晚我會放棄它,現在在工作。 – Jonathan

+0

碼頭DNS修復解決了我的問題。 – JBCP

相關問題