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

Groovy或Java如何将映射内镜像名拼接为单行docker save命令参数

实现方案

Groovy 版本

直接通过集合操作批量拼接所有镜像参数,一次性执行导出命令即可:

// 收集所有镜像名并拼接为docker save可识别的参数格式
def imageParams = myMap.values().collect { "${it.keyword}:你需要的实际tag" }.join(' ')
// 执行单次导出命令
sh "docker save ${imageParams} > docker.tar"

逻辑说明:

  • myMap.values() 取出映射中所有的子条目,不需要关心外层的key是什么
  • collect 遍历每个子条目,取出keyword字段拼接你需要的tag
  • join(' ') 把所有带tag的镜像名用空格分隔,拼成完整的参数字符串
  • 全程不需要硬编码下标,后续新增镜像条目会自动被收集,完全适配任意数量的镜像。

Java 版本

逻辑和Groovy完全一致,用Stream流做集合处理即可:

import java.util.Map;
import java.util.stream.Collectors;

// 假设myMap的类型为 Map<String, Map<String, String>>
String imageParams = myMap.values().stream()
        .map(item -> String.format("%s:你需要的实际tag", item.get("keyword")))
        .collect(Collectors.joining(" "));

// 构造执行命令
String cmd = "docker save " + imageParams + " > docker.tar";
// 执行命令示例
Process process = new ProcessBuilder("sh", "-c", cmd)
        .inheritIO()
        .start();
process.waitFor();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:45:04