Docker映像时间戳记问题

问题描述 投票:2回答:1

我创建了一个崭新的图像,但显示为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版本是

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
}

enter image description here

docker dockerfile docker-image
1个回答
4
投票

来自Google Jib。为了重现性,他们没有设置日期,或者将日期明确设置为零值,这是1970年的时期。

这里有一个常见问题解答条目:https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#why-is-my-image-created-48-years-ago

出于再现目的,Jib设置了容器映像到Unix时代(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'
© www.soinside.com 2019 - 2024. All rights reserved.