【问题标题】:Correct syntax for concatenating multiple ENV in Dockerfile?在 Dockerfile 中连接多个 ENV 的正确语法?
【发布时间】:2021-07-16 07:22:27
【问题描述】:

我有 3 个 ENV 变量,它们以某种方式相互依赖。

我发现以下两种语法都不起作用,我也找不到正确的语法,有人可以帮我吗?

ENV_1=/path/
ENV_2="$ENV_1"/dir2
ENV_3="$ENV_2"/dir3


ENV_1=/path/
ENV_2=$ENV_1/dir2
ENV_3=$ENV_2/dir3

【问题讨论】:

  • 这适用于.env 文件,也适用于docker-compose 中的env_files。 AFAIK 你不能在Dockerfile 中做到这一点。

标签: docker environment-variables dockerfile


【解决方案1】:

环境变量在 Dockerfile 中使用 ENV 语句声明。 你可以试试下面的方法

Dockerfile:

FROM alpine

ENV parent=parent_dir
ENV child=child_dir

WORKDIR /tmp

#create nested dir structure in /tmp
RUN mkdir -p $parent\/$child

构建镜像并启动容器后,容器内部将具有以下结构:

/ # tree /tmp/
/tmp/
└── parent_dir
    └── child_dir

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多