我们有一个 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 文件夹包含到图像中。
您将 .git 文件夹的内容复制到 /dist 目录中,而不是 .git 文件夹本身。如果要复制文件夹,请将目标指定为要创建的文件夹:
COPY .git/ ./.git/
我还尝试了以下指令而不是
COPY .git/ ./.git/
,它已成功将 .git 目录复制到 docker 容器:
ADD . .