我的 docker 图像中复制文件的不同 SHA1(来自 Maven Build)
Different SHA1 for copied files in my docker image (from Maven Build)
我目前正在使用 Docker 文件为我的项目构建一个 Docker 图像。在其中,我不得不复制项目中库加载的一些文件(二进制机器学习模型)(我尝试了 COPY 和 ADD 命令),似乎库正在寻找模型文件的 sha1 来验证其完整性。
然而,当我在 运行ning docker 容器中检查此文件的 sha1 时,它与原始文件(在构建图像的机器上)的 sha1 不同。
我检查了 Docker 图像中的其他添加文件(脚本等...),所有 sha1 都不一样。
我们尝试在不同的 OS 上构建图像,尝试在 docker 图像中设置系统区域设置(我想到了一些关于编码的事情......)但没有任何效果。这是 Docker 的“正常”行为吗?
谢谢
编辑:Docker文件是 运行 由 Spotify Maven 插件 (Java)
终于找到问题所在了。它不是 docker 也不是 Spotify Maven 插件,而是构建项目时过滤的 Maven 资源。我不知道它到底在做什么,但我的二进制文件在这一步之后被修改了。为这些文件添加了排除项,现在一切正常。
参考代码:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>prepare-dockerfile</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/docker-ready</outputDirectory>
<resources>
<resource>
<directory>docker</directory>
<filtering>true</filtering>
</resource>
</resources>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
<nonFilteredFileExtension>crt</nonFilteredFileExtension>
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</execution>
</executions>
</plugin>
我目前正在使用 Docker 文件为我的项目构建一个 Docker 图像。在其中,我不得不复制项目中库加载的一些文件(二进制机器学习模型)(我尝试了 COPY 和 ADD 命令),似乎库正在寻找模型文件的 sha1 来验证其完整性。
然而,当我在 运行ning docker 容器中检查此文件的 sha1 时,它与原始文件(在构建图像的机器上)的 sha1 不同。
我检查了 Docker 图像中的其他添加文件(脚本等...),所有 sha1 都不一样。
我们尝试在不同的 OS 上构建图像,尝试在 docker 图像中设置系统区域设置(我想到了一些关于编码的事情......)但没有任何效果。这是 Docker 的“正常”行为吗?
谢谢
编辑:Docker文件是 运行 由 Spotify Maven 插件 (Java)
终于找到问题所在了。它不是 docker 也不是 Spotify Maven 插件,而是构建项目时过滤的 Maven 资源。我不知道它到底在做什么,但我的二进制文件在这一步之后被修改了。为这些文件添加了排除项,现在一切正常。
参考代码:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>prepare-dockerfile</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/docker-ready</outputDirectory>
<resources>
<resource>
<directory>docker</directory>
<filtering>true</filtering>
</resource>
</resources>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
<nonFilteredFileExtension>crt</nonFilteredFileExtension>
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</execution>
</executions>
</plugin>