M.A*_*ufi 6 environment-variables docker dockerfile docker-compose
我需要将今天的日期设置为我的 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
Run Code Online (Sandbox Code Playgroud)
现在你可以用以下命令构建它
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
Run Code Online (Sandbox Code Playgroud)
这仍然需要date在主机上运行,因为Dockerfile不幸的是,在主机内执行此操作是不可能的:
RUN语句中;但ENV只能使用构建外部的环境变量的语句您可以使用自定义ENTRYPOINT工具并将日期从文件注入到环境中:
FROM base
RUN date +%Y%m%d > /build-timestamp
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT /entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
entrypoint.sh:
# 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 .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15078 次 |
| 最近记录: |