dockerfile 中设定LABEL build date, 自动生成当前日期, 不传参, 简洁
时间: 2023-09-24 08:02:47 浏览: 29
可以使用 `ARG` 指令和 Shell 脚本来简洁地实现自动生成当前日期并将其设置为 `LABEL build_date` 的值的效果,示例如下:
```
ARG BUILD_DATE
LABEL build_date=${BUILD_DATE:-$(date -u +"%Y-%m-%dT%H:%M:%SZ")}
```
在上述代码中,我们使用 `ARG` 指令定义了一个名为 `BUILD_DATE` 的变量,并将其作为 `LABEL build_date` 的值。在设置 `LABEL build_date` 的值时,我们使用了 Shell 脚本 `${BUILD_DATE:-$(date -u +"%Y-%m-%dT%H:%M:%SZ")}`,它会先尝试使用 `BUILD_DATE` 变量的值,如果该变量没有被定义,则使用 `date` 命令来获取当前的 UTC 时间,并将其格式化为 ISO 8601 格式的字符串。这样,如果用户没有手动传递构建日期的参数,Docker 就会自动生成当前日期并将其设置为 `LABEL build_date` 的值。
此外,由于 Shell 脚本中使用了 `${BUILD_DATE:-...}` 的形式,它还允许用户手动传递构建日期参数来覆盖默认值。例如,如果用户希望将构建日期设置为 `2022-01-01T00:00:00Z`,可以使用以下命令来构建镜像:
```
docker build --build-arg BUILD_DATE=2022-01-01T00:00:00Z -t myimage .
```
这样,Docker 就会使用用户传递的构建日期来设置 `LABEL build_date` 的值。