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

如何在PowerShell脚本中向Docker调用传递可选参数?

实现PowerShell脚本传递任意Docker构建参数

你可以利用PowerShell的ValueFromRemainingArguments参数特性,实现类似Python**kwargs的效果,直接把命令行里的额外参数传递给Docker命令,不用硬编码所有可能的选项。

修改脚本参数定义

在你的build_docker.ps1脚本开头,添加一个接收剩余参数的变量,示例如下:

param(
    # 你原本的必选参数
    [Parameter(Mandatory=$true)]
    [string]$dockername,
    # 接收所有额外的Docker构建参数
    [Parameter(ValueFromRemainingArguments)]
    [string[]]$DockerBuildArgs
)

# 这里保留你原本的文件复制操作...

# 调用docker build时,用@符号展开参数数组
docker build -t $dockername @DockerBuildArgs .

# 这里保留你原本的后续清理操作...

使用方式

执行脚本时,先传入脚本自己的参数(比如-dockername),后面直接跟任意Docker build支持的参数即可:

powershell ./build_docker.ps1 -dockername test_docker --no-cache --pull --build-arg APP_VERSION=1.0

关键说明

  • [Parameter(ValueFromRemainingArguments)]会把命令行中未匹配到脚本定义参数的所有内容,打包成字符串数组传给$DockerBuildArgs
  • 调用docker build时用@DockerBuildArgs(而非$DockerBuildArgs),是PowerShell的数组展开语法,能让数组里的每个元素作为独立命令行参数传递给Docker,和直接写在命令里效果完全一致
  • 不管是无值的开关参数(比如--no-cache)还是带值的参数(比如--build-arg KEY=VALUE),都能正常传递,无需额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:20:57