You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile中PowerShell RUN命令传递环境变量的正确方法

解决Dockerfile中PowerShell执行cmake传递环境变量的问题

正确写法示例

方法1:用单引号包裹PowerShell命令,确保变量由PowerShell解析

RUN powershell -Command 'cmake "-DPKG_VERSION=$Env:PKG_VERSION" ..'

方法2:使用子表达式语法明确变量解析

RUN cmake "-DPKG_VERSION=$($Env:PKG_VERSION)" ..

方法3:若PKG_VERSION是Docker的ENV变量,可直接用PowerShell环境变量语法

ENV PKG_VERSION=1.0.0
RUN cmake "-DPKG_VERSION=$Env:PKG_VERSION" ..

失败原因说明

在Dockerfile的RUN命令中直接使用本地PowerShell的写法时,Docker会优先尝试将$Env:PKG_VERSION解析为Docker层面的变量(而非PowerShell环境变量),导致变量未正确传递给cmake。通过单引号包裹命令或子表达式语法,可强制让PowerShell负责环境变量的解析,避免Docker预解析的干扰。

内容的提问来源于stack exchange,提问作者malat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:53:12