我试图将bitbucket托管的私有仓库克隆到docker容器中。我的Dockerfile如下
RUN git clone git@deploy:<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 .
我遇到的问题:我说标签v1.1.2
不存在。为了确认这一点,我用
RUN git clone git@deploy:<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 .
我可以看到最后创建的分支和最后一个标记现在已经克隆了。我找到的解决方法是进行双重拉
RUN git clone git@deploy:<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 :(得分:0)
试试这个:
RUN git clone -b 'v1.1.2' --single-branch --depth 1 git@deploy:<blabla>.git /src/<blabla> \
&& cd /src/<blabla> \
&& pip install .
WORKDIR /src/<blabla>
Git clone可以直接获取标记,添加--single-branch
和--depth
可以避免将整个存储库历史记录克隆到容器中。
它更紧凑,避免了额外的图层。你仍然可以把它分成你想要的多行。