在Docker容器中的代理后面获取git [英] Fetching git behind proxy in docker container

查看:77
本文介绍了在Docker容器中的代理后面获取git的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我被困了几个小时,试图从git中获取在docker容器中运行的代理的后台。

I've been stuck for several hours trying to fetch from git behind proxy running inside a docker container.

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

我可以确认我的代理服务器适用于 apt-get 和早期的 git clone

I can confirm my proxy works for apt-get and earlier git clone command in the Dockerfile.

任何想法出问题了吗?

这是我的Dockerfile

Here is my 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


推荐答案

获取git://github.com/seuros/state_machine.git :这不是 https协议

这是 Git one (在端口9418上

Fetching git://github.com/seuros/state_machine.git: this is not https protocol.
It is the Git one (on port 9418 by default)

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

Add to your Dockerfile (before git clone):

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

这样,您知道git将使用https网址,并将受益于您设置的https代理。

That way, you know git will use an https url, and will benefit from the https proxy you have set up.

这篇关于在Docker容器中的代理后面获取git的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆