docker - Docker 镜像时间戳问题
问题描述
我创建了一个全新的图像,但它显示50 years ago timestamp
,请找到附加的片段。知道为什么吗?
我在 Dockerfile 中使用了以下步骤
FROM openjdk:11
VOLUME /tmp
COPY build/libs /app
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/test-service.jar"]
我的码头工人版本是
Docker version 19.03.5, build 633a0ea
Gradle 6.0.1 构建工具,以及用于创建图像的 Google Jib 插件
plugins {
id 'com.google.cloud.tools.jib' version '1.8.0'
}
jib {
from {
image = 'openjdk:11'
}
to {
image = 'test-service'
}
container {
jvmFlags = ['-Xms512m', '-Xdebug']
mainClass = 'com.sample.Application'
}
allowInsecureRegistries=true
}
解决方案
那是来自 Google Jib 的。为了重现性,他们没有设置日期,或者他们明确地将日期设置为零值,即 1970 年的纪元。
有一个常见问题解答条目:https ://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#why-is-my-image-created-48-years-ago
出于重现性目的,Jib 将容器映像的创建时间设置为 Unix 纪元(UTC 时间为 1970 年 1 月 1 日 00:00:00)。如果您想使用不同的时间戳,请将
jib.container.creationTime / <container><creationTime>
参数设置为 ISO 8601 日期时间。您也可以使用该值USE_CURRENT_TIMESTAMP
将创建时间设置为实际构建时间,但这会牺牲可重复性,因为时间戳会随着每次构建而改变。设定
creationTime
参数马文:
<configuration> <container> <creationTime>2019-07-15T10:15:30+09:00</creationTime> </container> </configuration>
摇篮:
jib.container.creationTime = '2019-07-15T10:15:30+09:00'
推荐阅读
- python - 如何在一张图中显示4张图片
- clojure - Clojure 中的 set 和 hash-set 有什么区别?
- powerbi - 将包装的表数据转换为列
- python - 如何将此代码中的数据保存在单独的文件中以创建机器学习模型?
- angular - Angular:将请求结果转换为可观察的
- c++ - 无法理解这段代码的含义
- python - 为什么我的 python discord bot 突然重复对命令的响应
- java - Spring Boot RequestMapping 上的“Consumes”默认为“application/octet-stream”,设置时为 null
- python - 为什么在函数中修改列表会改变原始列表,但在函数中声明它们会创建一个新对象?
- reactjs - ./node_modules/leaflet/dist/leaflet.css 3:0 中的错误 > 您可能需要适当的加载程序来处理此文件类型