首页 > 解决方案 > 评估 Dockerfile 中的 bash 表达式

问题描述

我正在尝试从VERSION这样的文件中读取应用程序版本echo -n 1.0.0 > VERSION,并将版本号存储在环境变量中,比如说VERSION. 我的Dockerfile

FROM debian
WORKDIR /app
COPY VERSION .
ENV VERSION $(cat VERSION)
# I'd like to use the version number in later steps like
RUN apt update && apt install -y curl
RUN curl path/to/executable-${VERSION}

env | grep VERSION返回:

VERSION=$(cat VERSION)

我想

VERSION=1.0.0

标签: dockerdockerfile

解决方案


ENV 不插入变量。

这个怎么样:

FROM debian
WORKDIR /app
COPY VERSION version-file
RUN echo "export VERSION=$(cat version-file)" >> /root/.bashrc
RUN apt update && apt install -y curl
RUN curl path/to/executable-${VERSION}

这使用 RUN 步骤将导出命令添加到 .bashrc 文件。export 命令添加 VERSION 环境变量。


推荐阅读