2016-07-23 7 views
2

Ich habe seit mehreren Stunden festgefahren, versuchen, von git hinter Proxy in einem Docker Container zu holen.Abrufen von Git hinter Proxy in 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 

Ich kann meine Proxy bestätigen arbeitet für apt-get und früheren git clone Befehl in der Dockerfile.

Irgendeine Idee, was ich bitte falsch mache?

Hier ist meine 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 
+0

Neben VonC des antworten Sie unten, Sie können hier einige Zeilen speichern, indem Sie die integrierten ARGs verwenden, die Ihnen zur Verfügung stehen (für Proxies). - https://docs.docker.com/engine/reference/builder/#/arg – johnharris85

Antwort

3

Fetching git://github.com/seuros/state_machine.git: Das ist nicht https protocol.
Es ist die Git one (auf Port 9418 standardmäßig)

zu Ihrem Dockerfile hinzufügen (vor git clone):

RUN git config --global url."https://github.com/".insteadOf [email protected]: 

Auf diese Weise wissen Sie git eine https-URL verwenden, und wird von der profitieren https-Proxy, den Sie eingerichtet haben.

1

Dank @VonC für mich in der richtigen Richtung

Hier ist die Lösung des Problem für Github

git config --global url."https://github.com/".insteadOf [email protected]: 
git config --global url."https://".insteadOf git:// 

Für Bit-Eimer zu beheben:

git config --global url."https://user:[email protected]".insteadOf ssh://[email protected]