在Docker多阶段构建的构建步骤中包含.git文件夹是否存在安全风险?
以举例说明。我们使用Java的maven构建工具进行了一个编译步骤,该工具读取git信息,例如标签和提交。这要求编译步骤可以访问.git文件夹。然后,将生成的伪像复制到最终图像。参见:
FROM maven:3.5.4 as build
COPY $PWD /cbioportal
WORKDIR /cbioportal
RUN mvn -DskipTests clean install
FROM openjdk:8-jre
RUN mkdir -p /cbioportal
COPY --from=build /cbioportal/cbioportal*.war /app.war
COPY --from=build /cbioportal/webapp-runner.jar /webapp-runner.jar
如果我们公开共享结果图像。有什么方法可以获取有关创建图像的原始.git文件夹的信息?
答案 0 :(得分:1)
.git将被缓存在计算机上,该计算机将构建映像,但不会包含在最终映像中,最终映像仅将3层添加到openkdk层中: -带有/ cbioportal目录的一层 -从构建中复制战争文件的一层 -带有webapp-runner.jar的一层
使用docker inspect,您可以列出两个图像的层并进行比较...