正在 docker 容器中的代理后面获取 git
Fetching git behind proxy in docker container
我在 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 protocol.
它是 Git one(默认在端口 9418 上)
添加到您的 Dockerfile(在 git clone
之前):
RUN git config --global url."https://github.com/".insteadOf git@github.com:
这样,您就知道 git 将使用 https url,并将受益于您设置的 https 代理。
感谢@VonC 为我指明了正确的方向
这是解决 Github
问题的解决方案
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
我在 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 protocol.
它是 Git one(默认在端口 9418 上)
添加到您的 Dockerfile(在 git clone
之前):
RUN git config --global url."https://github.com/".insteadOf git@github.com:
这样,您就知道 git 将使用 https url,并将受益于您设置的 https 代理。
感谢@VonC 为我指明了正确的方向
这是解决 Github
问题的解决方案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