2016-10-19 9 views
0

私は、bitbucketによってホストされているプラ​​イベートレポをドッカーコンテナに複製しようとしています。私は、タグv1.1.2が存在しないことを言っています:Dockerfile lagsのGitクローンレポ

RUN git clone [email protected]:<blabla>.git /src/<blabla> 
WORKDIR /src/<blabla> 
RUN cd /src/<blabla> 
RUN git pull --all --tags 
RUN git checkout v1.1.2 
RUN pip install . 

私が持っている問題をたどると私Dockerfileです。それを確認するために、私が最後に作成したブランチと最後のタグは、現在実際にクローン化されることがわかります

RUN git clone [email protected]:<blabla>.git /src/<blabla> 
WORKDIR /src/<blabla> 
RUN cd /src/<blabla> 
RUN git pull --all --tags 
RUN git branch 
RUN git tag 
RUN git checkout v1.1.2 
RUN pip install . 

でDockerfileを変更します。私が見つけた回避策は、ダブルプルを行うことです。

RUN git clone [email protected]:<blabla>.git /src/<blabla> 
WORKDIR /src/<blabla> 
RUN cd /src/<blabla> 
RUN git pull --all --tags 
RUN git pull --all --tags 
RUN git checkout v1.1.2 
RUN pip install . 

これですべてがうまくいきます。

+0

git clone - ミラークローンすべてのブランチとタグは、チェックアウトできるものよりもv1.1.2 –

+0

'docker build --no-cache'でも同じことが起こりますか? – wrwrwr

答えて

0

はこれを試してみてください:

RUN git clone -b 'v1.1.2' --single-branch --depth 1 [email protected]:<blabla>.git /src/<blabla> \ 
    && cd /src/<blabla> \ 
    && pip install . 

WORKDIR /src/<blabla> 

Gitのクローンは、直接タグを取得し、コンテナにリポジトリ全体の歴史のクローンを作成する--single-branch--depth回避を追加することができます。

これはもう少しコンパクトで余分なレイヤーを避けています。それでもあなたはそれを複数の行に分割することができます。