为什么我无法将 .git 文件夹复制到我的 docker 容器中

问题描述 投票:0回答:3

我们有一个 node.js/typescript 项目,现在我应该为我们的声纳分析提供数据。

我们使用 Docker 容器来运行测试,测试完成后,我们将运行 sonarqube 分析,以便我们可以使用测试中的代码覆盖率报告。

唯一的问题是,责备信息缺失。这就是为什么我尝试将 .git 文件夹复制到 docker 容器中,但到目前为止我没有成功。这是我的 Dockerfile 的内容。

FROM node:11.6-alpine
RUN apk --update add openjdk8-jre

WORKDIR /dist

COPY package*.json ./

RUN npm install

COPY src/ ./src/
COPY test/ ./test/
COPY ts*.json ./
COPY sonar-project.properties ./
COPY test.sh /
COPY .git/ ./

RUN chmod +x /test.sh

CMD ["sh", "/test.sh"]

我读过,.dockerignore 文件可用于排除文件或文件夹,但我们没有使用这样的文件,我也尝试创建一个仅包含 node_modules 的文件,但这也不起作用。

有人知道如何包含它或任何提示要谷歌搜索什么吗?我只找到“如何从 docker 容器中排除 .git”,但恢复这些提示到目前为止没有帮助。

编辑:为了让它更奇怪,使用

COPY . ./
将 .git 文件夹包含到图像中。

docker copy
3个回答
20
投票

您将 .git 文件夹的内容复制到 /dist 目录中,而不是 .git 文件夹本身。如果要复制文件夹,请将目标指定为要创建的文件夹:

COPY .git/ ./.git/

0
投票

我还尝试了以下指令而不是

COPY .git/ ./.git/
,它已成功将 .git 目录复制到 docker 容器:

ADD . .

0
投票

确保项目中的

.git
文件中不包含
.dockerignore
文件夹。这就是这个相关问题中出现问题的原因。

© www.soinside.com 2019 - 2024. All rights reserved.