gpt4 book ai didi

docker - 将今天的日期设置为环境变量

转载 作者:行者123 更新时间:2023-12-05 01:32:28 24 4
gpt4 key购买 nike

我需要在我的 docker 容器中将今天的日期设置为环境变量。

我想做的是获取今天的日期,这样我就可以使用它通过 Logstash 的 http_poller 插件调用一些 API。

我正在考虑的解决方案是使用命令 date +%Y%m%d 获取今天的日期

如何在运行时将此命令的结果设置为环境变量?

最佳答案

ARG应该是您正在寻找的:

FROM base

# to be able to use in Dockerfile
ARG now

# to store the value as environment variable in the image
ENV build_date=$now

现在你可以用

# pass value explicitly
docker build --build-arg now="$(date +%Y%m%d)" .

# pass value from environment
export now="$(date +%Y%m%d)"
docker build --build-arg now .

这仍然需要在主机上运行 date,因为不幸的是,在 Dockerfile 中执行此操作是不可能的:

  • 在构建中执行任意命令的唯一方法是在 RUN 语句中;但是
  • 将变量持久化到图像/容器环境中的唯一方法是使用 ENV 语句,该语句只能使用构建外部的环境变量

您可以使用自定义的 ENTRYPOINT tough 并将日期从文件注入(inject)到环境中:

FROM base

RUN date +%Y%m%d > /build-timestamp
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT /entrypoint.sh

入口点.sh:

#!/bin/bash

export BUILD_TIMESTAMP="$(cat /build-timestamp)"
exec "$@"

关于docker - 将今天的日期设置为环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65492739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com