title: Failed to connect to github.com port 443: Connection refused, Failed to Bootstrap, Discourse Docker
body: <p>Whilst running my <code>./launcher bootstrap app</code> command from <code>/var/docker</code> on a local installation of Discourse, I get this error.</p>
  
  <pre><code>fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Failed to connect to github.com port 443: Connection refused
  FAILED TO BOOTSTRAP
  </code></pre>
  
  <p>The following is the contents of my <code>containers/app.yml</code>. I've been using <a href="https://github.com/discourse/discourse_docker" rel="nofollow">this</a> guide to try to get it up and running. I've heard of some people having issues with HTTP connections refused due to <code>iptables -L</code> containing some <a href="https://meta.discourse.org/t/failed-to-bootstrap-http-request-failed/16421/9?u=def" rel="nofollow">rules blocking the docker container</a> from connecting to the internet. But it moments before just downloaded an image. So I don't understand.</p>
  
  <pre><code>##
  ## 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: &lt;%= ENV['EMAIL_ADDRESS'] %&gt;
    ##
    ## 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: &lt;%= ENV['GMAIL_USERNAME'] %&gt;
    DISCOURSE_SMTP_PASSWORD: &lt;%= ENV['GMAIL_PASSWORD'] %&gt;
    ##
    ## 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&gt;=2 {print $NF;}'
  </code></pre>