Docker 构建映像抱怨:致命:不是 git 存储库(或任何父目录):.git
Docker build image complain about: fatal: not a git repository (or any of the parent directories): .git
我正在使用这个 Dockerfile 内容:
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install git -y
RUN git clone https://code.qt.io/qt/qt5.git /cloned-qt
RUN cd /cloned-qt/
RUN git checkout 5.11
RUN git pull
一旦我 运行 我的构建映像命令:
sudo docker build -t qt5.11-auto:v1 .
我收到此错误消息:
Sending build context to Docker daemon 4.608kB
Step 1/10 : FROM ubuntu:18.04
---> ea4c82dcd15a
Step 2/10 : RUN apt-get update
---> Using cache
---> 60e7c61ea78c
Step 3/10 : RUN apt-get install git -y
---> Using cache
---> 50a4def0607e
Step 4/10 : RUN git clone https://code.qt.io/qt/qt5.git /cloned-qt
---> Using cache
---> 97fb8ab6dc15
Step 5/10 : RUN cd /cloned-qt/
---> Running in 9be03fba40fa
Removing intermediate container 9be03fba40fa
---> 130bc457eb66
Step 6/10 : RUN git checkout 5.11
---> Running in 35de823fdf9c
fatal: not a git repository (or any of the parent directories): .git
在这个失败的步骤之后,当我 运行 容器并执行相同的命令时,我成功地 运行 它们。
docker 构建失败 运行 "git checkout" 命令的原因似乎是什么,但是当 运行 在容器中将其运行时?
每次您执行 RUN
,docker 都会创建一个新的临时容器到 运行,因此像 cd 这样的命令无效。
做
WORKDIR /cloned-qt/
而不是
RUN cd /cloned-qt/
将 "RUN cd /cloned-qt/" 命令更改为 "WORKDIR cloned-qt"
它将按预期工作
将第 5 步和第 6 步合并为单层,如下所示。
运行 cd /cloned-qt/ && git checkout 5.11
我正在使用这个 Dockerfile 内容:
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install git -y
RUN git clone https://code.qt.io/qt/qt5.git /cloned-qt
RUN cd /cloned-qt/
RUN git checkout 5.11
RUN git pull
一旦我 运行 我的构建映像命令:
sudo docker build -t qt5.11-auto:v1 .
我收到此错误消息:
Sending build context to Docker daemon 4.608kB
Step 1/10 : FROM ubuntu:18.04
---> ea4c82dcd15a
Step 2/10 : RUN apt-get update
---> Using cache
---> 60e7c61ea78c
Step 3/10 : RUN apt-get install git -y
---> Using cache
---> 50a4def0607e
Step 4/10 : RUN git clone https://code.qt.io/qt/qt5.git /cloned-qt
---> Using cache
---> 97fb8ab6dc15
Step 5/10 : RUN cd /cloned-qt/
---> Running in 9be03fba40fa
Removing intermediate container 9be03fba40fa
---> 130bc457eb66
Step 6/10 : RUN git checkout 5.11
---> Running in 35de823fdf9c
fatal: not a git repository (or any of the parent directories): .git
在这个失败的步骤之后,当我 运行 容器并执行相同的命令时,我成功地 运行 它们。 docker 构建失败 运行 "git checkout" 命令的原因似乎是什么,但是当 运行 在容器中将其运行时?
每次您执行 RUN
,docker 都会创建一个新的临时容器到 运行,因此像 cd 这样的命令无效。
做
WORKDIR /cloned-qt/
而不是
RUN cd /cloned-qt/
将 "RUN cd /cloned-qt/" 命令更改为 "WORKDIR cloned-qt" 它将按预期工作
将第 5 步和第 6 步合并为单层,如下所示。
运行 cd /cloned-qt/ && git checkout 5.11