gpt4 book ai didi

Dockerfile:在单行中设置多个环境变量

转载 作者:IT老高 更新时间:2023-10-28 12:35:03 29 4
gpt4 key购买 nike

我的印象是可以将环境变量设置在一行中,以尽量减少中间图像。

FROM alpine:3.6
ENV RUBY_MAJOR 2.4 \
RUBY_VERSION 2.4.1 \
RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION 2.6.12 \
BUNDLER_VERSION 1.15.3

但是,基于此代码段运行容器并调用 # set |grep RU 我看到变量没有单独分配,而是组合成一个字符串。

RUBY_MAJOR='2.4     RUBY_VERSION 2.4.1     RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654     RUBYGEMS_VERSION 2.6.12     BUNDLER_VERSION 1.15.3'

但是,如果我如下明确设置每个变量,我会得到预期的输出,并且在调用变量时没有错误。

ENV RUBY_MAJOR 2.4
ENV RUBY_VERSION 2.4.1
ENV RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
ENV RUBYGEMS_VERSION 2.6.12
ENV BUNDLER_VERSION 1.15.3

问题:是否可以将环境变量的设置组合在一行中?如果是这样,我会怎么做?这是一个好习惯吗?

最佳答案

有两种指定环境的格式。如果你需要单个变量,那么你下面的格式

ENV X Y

这会将 X 分配为 Y

ENV X Y Z

这会将 X 分配为 Y Z

如果您需要分配多个环境变量,则使用其他格式

ENV X=Y Z=A

这会将 X 指定为 Y 并将 Z 指定为 A。所以你的 Dockerfile 应该是

FROM alpine:3.6
ENV RUBY_MAJOR=2.4 \
RUBY_VERSION=2.4.1 \
RUBY_DOWNLOAD_SHA256=4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION=2.6.12 \
BUNDLER_VERSION=1.15.3

RUN env

关于Dockerfile:在单行中设置多个环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529121/

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