代码之家  ›  专栏  ›  技术社区  ›  Riduidel

如何在容器中注入Docker container build timestamp?

  •  1
  • Riduidel  · 技术社区  · 6 年前

    我想建立一个容器,显示在它的启动日志中,它的建立日期时间。有没有办法将构建机器中的信息注入容器?

    2 回复  |  直到 6 年前
        1
  •  7
  •   BMitch    6 年前

    构建期间每个运行步骤的输出是对文件系统的更改。这样您就可以将日期输出到图像中的文件中。容器中的日志只是您运行的命令的stdout。所以你可以在你的入口点里把日期填出来。

    在代码中,在Dockerfile的末尾有:

    RUN date >/build-date.txt
    

    在入口点脚本中:

    #!/bin/sh
    #.... Initialization steps
    echo Image built: $(cat /build-date.txt)
    #.... More initialization steps
    # run the command
    exec "$@"
    
        2
  •  1
  •   David Maze    6 年前

    你可以用一个 ARG 在生成时传递当前生成时间戳。你必须 docker build --build-arg build-date=$(date) 或者类似的事情。这样做之后,可以在构建时使用类似于shell变量语法的方法引用参数。

    如果Dockerfile中有一个重要的构建步骤(正在编译Go应用程序),或者试图嵌入的元数据很难以编程方式生成(源代码管理版本戳,运行构建命令的人的姓名),则这可能更有用。