docker - 评估 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
解决方案
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 环境变量。
推荐阅读
- python - 在python中添加多个但相同的关键字int值
- c++ - 为什么zcat在解压用GzipOutputStream压缩的文件时会抛出“无效压缩数据”?
- php - Laravel 6 - 找不到路由帖子
- vba - 从文件路径中提取文件夹名称
- kubernetes - 问题 - 具有多个活动 ReplicaSet 的 Kubernetes 部署
- go - 如何删除多级地图
- python - 如何抓取特定网站的一些评论?(我遇到了一个挑战。)
- javascript - 在 RecordRTC 视频中添加放大和缩小功能
- python - 列表理解中的子进程产生重复的输出
- java - DBCP2 初始化