在Docker容器中获取代理后面的git

我一直坚持了几个小时试图从docker容器内运行的代理运行后的git。

Removing intermediate container 84c4f6722d09 Step 16 : RUN bundle install --without development test ---> Running in bbc7bfff1bae Fetching gem metadata from https://rubygems.org/......... Fetching version metadata from https://rubygems.org/... Fetching dependency metadata from https://rubygems.org/.. Fetching git://github.com/seuros/state_machine.git 

我可以确认我的代理在Dockerfile中适用于apt-get和早期的git clone命令。

任何想法是什么做错了吗?

这是我的Dockerfile

 FROM ruby:2.2.4 LABEL Description="slack-standup-bot (`master`) from ruby:2.2.4" ENV DEBIAN_FRONTEND noninteractive ENV TERM xterm ENV http_proxy http://192.168.0.43:8888 ENV https_proxy http://192.168.0.43:8888 RUN export HTTP_PROXY=http://192.168.0.43:8888 RUN export HTTPS_PROXY=http://192.168.0.43:8888 # See https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ RUN apt-get update && apt-get install -y \ build-essential \ libpq-dev \ git-core \ postgresql-client \ nodejs \ && rm -rf /var/lib/apt/lists/* RUN git config --global http.proxy http://192.168.0.43:8888 RUN mkdir -p /srv WORKDIR /srv RUN git clone https://github.com/sofetch/slack-standup-bot.git WORKDIR /srv/slack-standup-bot ENV RAILS_ENV production RUN bundle install --without development test COPY wait-pg-and-start.sh /srv/slack-standup-bot/wait-pg-and-start.sh COPY start-rails.sh /srv/slack-standup-bot/start-rails.sh RUN chmod +x /srv/slack-standup-bot/wait-pg-and-start.sh /srv/slack-standup-bot/start-rails.sh 

Fetching git://github.com/seuros/state_machine.git :这不是https协议 。
这是一个Git (默认端口9418)

添加到你的Dockerfile(在git clone之前):

 RUN git config --global url."https://github.com/".insteadOf git@github.com: 

这样,你知道git将使用httpsurl,并将从你设置的https代理中受益。

感谢@VonC指引我正确的方向

这里是解决Github问题的解决scheme

 git config --global url."https://github.com/".insteadOf git@github.com: git config --global url."https://".insteadOf git:// 

对于位桶:

 git config --global url."https://user:pass@bitbucket.org".insteadOf ssh://git@bitbucket.org