跳转到主内容

Podman Desktop 1.16 发布

·阅读时长 19 分钟
Philippe Martin
首席软件工程师

Podman Desktop 1.16 版本发布!🎉

podman-desktop-hero-1.16

Podman Desktop 1.16 现已发布!点击此处下载

此版本带来了令人兴奋的新功能和改进:

  • 实验性功能:设置中新增“实验性”部分,提供当前实验功能列表及相关讨论链接
  • 供应器显示在状态栏:供应器从仪表板移至状态栏,以提高其可见性(实验性功能)
  • 仅清理未标记的镜像:清理镜像时,可选择清理“所有未标记的镜像”或“所有未使用的镜像”
  • 在容器日志中搜索:可在容器和 Pod 的日志中搜索特定术语
  • Kubernetes: 仅监控当前上下文:默认情况下仅监控当前上下文

发布详情 🔍

实验性功能

之前版本的 Podman Desktop 引入了一些实验性功能,可以从“设置”中激活。

在 Podman Desktop v1.16 中,这些实验性功能在“设置”的新增“实验性”部分中可见,并且已创建了专门的讨论页面,可以从此部分访问。

Experimental Features SettingsExperimental Features Settings

供应器显示在状态栏

如果您激活了实验性功能“Statusbar Providers show Providers”(见上文),供应器将在状态栏中显示其状态。

具体来说,如果供应器至少提供一个资源,它们将显示一个状态,并用图标指示其资源的状态:正在运行或已停止。

在下面的截图中,Podman 供应器指示 Podman machine 正在运行,而 Kind 供应器指示 Kind 集群已停止。

Providers statusesProviders statuses

仅清理未标记的镜像

当点击“镜像列表”页面中的“清理”按钮时,现在可以选择要清理的镜像,可以是所有未使用的镜像,也可以是所有未标记的镜像。

Prune images dialogboxPrune images dialogbox

在容器日志中搜索

容器输出的日志可能很长,您可能希望在其中搜索特定术语。Podman Desktop v1.16 现在为 Podman 容器和 Kubernetes Pod 提供了此功能。

Search term in LogsSearch term in Logs

Kubernetes: 仅监控当前上下文

之前版本的 Podman Desktop 会尝试连接到 kubeconfig 文件中找到的所有 Kubernetes 上下文,以显示每个上下文中存在的 Pod 和 Deployment 数量。

许多用户提出这存在问题。例如,一些用户的 kubeconfig 中定义了许多上下文,连接到所有这些上下文可能被集群视为垃圾信息。

其他用户的上下文指向由云服务提供商托管的集群,连接到这些集群需要定期刷新身份验证令牌。用户(或用户工具)通常会确保当前上下文的令牌是新鲜的,但不一定会为其他上下文这样做。对于某些配置,刷新令牌的操作是为 CLI 工具而非 GUI 工具设计的,Podman Desktop 无法向用户指示应刷新此令牌,并会无限次地尝试连接。

在 Podman Desktop 1.16 版本中,Pod 和 Deployment 的数量仅针对当前上下文显示,用户可以手动选择应为哪些其他上下文显示这些数量。

Kubernetes contextsKubernetes contexts

社区致谢

🎉 我们要向所有帮助 Podman Desktop 变得更好的人表示衷心的感谢。在此版本中,我们收到了以下人员的拉取请求

最后说明

已修复问题

此版本中修复的完整问题列表可在此处查看。

下载地址

从网站的下载部分获取最新版本,用 Podman Desktop 加速您的开发之旅。此外,欢迎访问 GitHub 仓库,看看您如何能帮助我们使 Podman Desktop 变得更好。

详细发布变更日志

实验性功能

  • feat(backend): 为配置模式添加实验性属性 by @axel7083 #10437
  • feat: 初始化偏好设置项的实验性功能 by @axel7083 #10534
  • feat: 设置中的实验性部分 by @axel7083 #10579
  • chore: 添加 docker 兼容性实验链接 by @axel7083 in #10770
  • chore: 将状态栏任务添加到实验性功能 by @axel7083 in #10778
  • feat(ui): 在实验性页面中使用完整记录 ID 作为标题 by @axel7083 in #10796
  • fix: 为状态栏供应器添加实验性链接 by @deboer-tim in #10810

日志

  • feat: 为日志窗口添加搜索控件 by @axel7083 #10612
  • feat: 启用 pod 日志搜索 by @axel7083 #10666

使用生产版 Podman Desktop 进行扩展开发(进行中)

  • feat: 引入一个标志,以便在使用生产二进制文件时也能看到“显示开发者工具” by @benoitf #10659
  • chore: 添加一个属性来存储用作扩展文件夹的文件夹 by @benoitf #10712
  • chore: 在 /extend 页面上添加指向 /extensions 页面的链接 by @cdrage #10382

Kubernetes

  • feat: 仅在当前上下文上运行监控 by @feloy #10335
  • feat: 在非当前上下文上手动启动监控 by @feloy #10345

扩展 API

  • feat: 为 dashboard/container 贡献添加 containerImageName 上下文 by @feloy #10262
  • feat: 为 icons/containersList 贡献添加 containerImageName 上下文 by @feloy #10261
  • chore: 允许为 'DockerCompatibility' 作用域设置上下文值 by @benoitf #10515

UI 组件

  • feat(ui): 为设置导航项组件添加 iconPosition 属性 by @axel7083 #10672
  • feat: 添加了除 fa 图标外显示 svg 文件的选项 by @gastoner #10309
  • feat: 为关闭按钮添加了可选属性 by @gastoner #10374
  • chore: 将轮播组件移至 pd svelte 库 by @gastoner #10583

Kubernetes 实验模式(进行中)

  • feat: 将 kube 资源分派到前端 by @feloy #10425
  • feat: 在实验性上下文模式下将权限分派到前端 by @feloy #10383
  • feat: 分派资源计数 by @feloy #10455
  • feat: 实验性健康检查前端 by @feloy #10349
  • feat: Kubernetes 实验模式的通知器 by @feloy #10174

扩展/Podman

  • fix(refactor): 将 Powershell 5 交互重构到一个单独的文件中 by @jeffmaury #10284
  • feat: 更新至 podman v5.3.2 by @benoitf in #10761

扩展/Docker

  • chore: 将 docker cli 上下文选择实现从核心移至 docker 扩展 by @benoitf #10526
  • chore: 如果设置了自定义 docker 配置,则使用正确的上下文 by @benoitf #10555

采用者

  • fix: 重构采用者列表格式 by @slemeur #10667
  • docs: Amadeus 作为采用者 by @fabricepipart1a #10689

UI

  • fix(push-manifest): 终端溢出 by @axel7083 #10527
  • fix(tasks-panel): 错误溢出省略号 by @axel7083 #10528
  • fix: 在下拉菜单中为表单提交添加隐藏输入组件 by @SoniaSandler #10461
  • chore(onboarding): 更新欢迎页面文本 by @axel7083 #10563
  • chore: 使用 ProviderWidget 添加容器供应器 by @SoniaSandler #10625
  • chore: 将 Kubernetes 供应器添加到状态栏 by @SoniaSandler #10699
  • chore: 为状态栏添加 ProviderWidget 组件 by @SoniaSandler #9724
  • chore: 在 NumberItem 中为给定值添加选项 by @SoniaSandler #10355
  • chore: 更改欢迎页面顺序以优先显示容器引擎 by @cdrage #10562
  • chore: 使窗口上的图标和标题更大 by @gastoner #10428
  • chore: 记住学习中心的折叠状态 by @deboer-tim #9597
  • chore: 从连接错误消息中删除错误主体 by @SoniaSandler #10404
  • chore: 在 podman machine 重新连接前只显示一条 enoent 错误消息 by @gastoner #10239
  • chore: 更新 kubernetes 空页面的样式 by @cdrage #10401
  • chore: 允许为 DockerCompatibility 中的下拉菜单设置值 by @benoitf #10516
  • feat: 允许仅清理未标记的镜像(而不仅仅是未使用的) by @benoitf #10400
  • feat(ui): 添加关闭按钮以隐藏横幅 by @gastoner #10414
  • feat: 添加额外的配置值以隐藏推荐横幅 by @gastoner #10322

错误修复

  • fix(frontend): 出错时隐藏发布说明图片 by @axel7083 #10510
  • fix: 构建无名称镜像应有正确的任务标题 by @jeffmaury #10321
  • fix: 通过健康检查检查连接 by @feloy #10457
  • fix: 启动应用前清理日志文件 by @benoitf #10500
  • fix: 安装期间覆盖现有文件导致 docker-compose 复制失败 by @dgolovin #10313
  • fix: 运行 push image 命令时创建任务 by @dgolovin #10267
  • fix: 如果未选择架构,则禁用构建按钮 by @benoitf #10686
  • fix: 在连接启动且 api 设置后触发 on*DidUpdateContainerConnection 事件 by @feloy #10668
  • fix: flathub 发布工作流 by @axel7083 #10387
  • fix: 当用户点击外部时隐藏旧版任务管理器 by @dgolovin #10539
  • fix: 设置导航项中的边距 by @gastoner #10442
  • fix: 布尔类型的偏好设置渲染项未更新 by @axel7083 #10580
  • fix: 推送模态对话框错误处理 by @dgolovin #10266
  • fix: 处理开发模式下扩展的 watch 模式属性 by @benoitf #10623
  • fix: 帮助菜单的切换 by @cdrage #10339
  • fix: 更新 ui 包的 spawn 命令 by @jeffmaury #10548
  • fix: kube 健康检查存储在非实验模式下不活动 by @feloy #10415
  • fix: 使用 option 属性以确保 options 被视为状态 by @deboer-tim #9953
  • chore: 修复 Podman 的 pruneAllImages 方法签名 by @benoitf #10388

测试

  • chore(ci): 将 Mac 更新 E2E 作业添加到 PR 检查和 e2e-main 工作流中 by @odockal #10384
  • chore(ci): 将 mac-update-e2e-test 作业添加到 e2e-main 工作流中 by @odockal #10402
  • chore(test): 引入一个父类,封装所有集群创建页面的共享功能 by @amisskii #10373
  • chore(test): Kubernetes e2e 测试自动化 by @amisskii #10320
  • chore(test): 参数化资源连接操作的超时 by @amisskii #10691
  • chore(test): 针对 compose up 的自动检测进行 e2e 测试 by @cbr7 #10658
  • chore(test): 将与集群相关的操作提取到一个专用的工具文件中 by @amisskii #10390
  • chore(test): 修复不稳定的 kind 集群重启测试 by @amisskii #10421
  • chore(test): 修复不稳定的卷删除行为 by @cbr7 #10347
  • chore(test): 处理 cli 工具确认对话框 by @amisskii #10532
  • chore(test): 增加从 OCI 镜像安装扩展的超时 by @amisskii #10351
  • chore(test): 增加等待镜像可用性的时间 by @cbr7 #10645
  • chore(tests): 目录更新后调整 e2e 测试中的沙箱名称 by @odockal #10576
  • test(PullImage): 添加测试以确保响应性 by @axel7083 #10733
  • test(front): 为 PodDetailsLogs 添加单元测试 by @axel7083 #10662
  • test(ui): 为 TerminalWindows 添加单元测试 by @axel7083 #10531
  • test: kind 详细信息操作 by @amisskii #10710
  • fix(ci): 删除 e2e 作业中重复的 pnpm install 步骤 by @odockal #10422
  • fix: macos 上容器详情终端的不稳定测试 by @axel7083 #10407
  • fix: 不要将 window 用作 any by @feloy #10635
  • chore: 在 vitest 设置期间生成所有暴露方法的模拟 by @benoitf #10426
  • chore: 处理更多可以模拟方法的场景 by @benoitf #10424
  • chore: 添加缺失的模拟方法 by @benoitf #10423
  • chore: 为在 windows 上测试每日构建添加 nsis 目标 by @odockal #10684
  • chore: 更新扩展的标题 by @benoitf in #10765
  • chore(test): 简化拉取镜像测试 by @axel7083 in #10798

重构

  • refactor(configuration): 将共享常量移动到 packages/api by @axel7083 #10344
  • refactor(podman): 用扩展 api 替换 isMac by @axel7083 #10417
  • refactor(podman-extension): 使用 api env.isLinux by @axel7083 #10403
  • refactor(ui): 偏好设置导航组件 by @axel7083 #10346
  • refactor: 清理未使用的 kubernetes 客户端代码 by @feloy #10458
  • refactor: 将 TerminalWindow 迁移到 svelte5 by @axel7083 #10728
  • refactor: 将 typeahead 迁移到 svelte5 by @axel7083 #10727
  • refactor: 从 Typeahead 组件中删除搜索函数工作 by @SoniaSandler #10737
  • chore: 将 PreferencesRenderingItemFormat 转换为 svelte 5 runes by @benoitf #10495
  • chore: 将 AuditMessageBox 迁移到 svelte5 rune by @benoitf #10493
  • chore: 将 ContributionActions 迁移到 svelte5 runes by @benoitf #10491
  • chore: 将 ExtensionDetailsReadme 迁移到 svelte 5 runes by @benoitf #10492
  • chore: 将 ListItemButtonIcon 迁移到 svelte 5 runes by @benoitf #10490
  • chore: 将 LoadingIconButton 迁移到 svelte 5 runes by @benoitf #10489
  • chore: 将 PreferencesRendering 迁移到 svelte 5 runes by @benoitf #10496
  • chore: 将 ProviderResultPage(和 ImageDetailsCheck)组件迁移到 svelte 5 by @benoitf #10446
  • chore: 将 PodsList 移至 svelte5 runes 模式 by @benoitf #10459
  • chore: 将 PreferencesRenderingItem 更新到 svelte5 runes by @benoitf #10494
  • fix: 启用 '@typescript-eslint/no-explicit-any' 规则 by @jeffmaury #10172
  • fix: 在 compose 扩展中移除对 no explicit any 规则的禁用 by @dgolovin #10613
  • chore: 添加 esnext 以便可以使用私有 # 变量 by @benoitf #10529
  • chore: 为渲染器部分启用 @typescript-eslint/explicit-function-return-type by @feloy #10705
  • chore: 将扩展加载器设置移动到 api 包 by @benoitf #10671
  • chore: 将 extension-* 文件移动到子文件夹 extension by @benoitf #10661
  • chore: 将 extension-updater 和 extension-catalog 作为新 extension 文件夹的子文件夹移动 by @benoitf #10664
  • chore: 将 @kubernetes/client-node 更新至 v1.0.0 by @feloy #10436
  • chore: 不将 kubernetes-client 模块声明为外部模块 by @feloy #10439
  • chore: 移除未使用的依赖项 by @benoitf #10509
  • refactor: 将 analyzeExtension 提取到一个专用类中 by @benoitf in #10742
  • refactor: deployments list 使用 svelte 5 by @feloy in #10760
  • chore: 移除 no-explicit-any by @benoitf in #10749
  • chore: 清理 @typescript-eslint/no-explicit-any by @benoitf in #10779

文档

  • docs(website): 添加了故障排除部分 by @shipsing #10296
  • docs(website): 添加了关于应用 yaml 清单的文档 by @shipsing #10324
  • docs(website): 添加了端口转发功能的文档 by @shipsing #9844
  • docs(website): 添加了查看容器日志和访问…的步骤 by @shipsing #10441
  • docs(website): 编辑了故障排除部分 by @shipsing #10413
  • docs(website): 移除了过时的图标 by @shipsing #10575
  • docs(website): 更新了 th… 的 kind 类别中过时的步骤 by @shipsing #10577
  • docs(website): 更新了 o… 的 minikube 类别中过时的步骤 by @shipsing #10688
  • docs(website): 更新了 containers cate… 中过时的步骤 by @shipsing #10540
  • docs: 为 Docker 兼容性添加 Linux 文档 by @afbjorklund #10481
  • docs: 添加关于使用 podman desktop 的 cncf 项目的博客 by @cdrage #9743
  • docs: 添加 bootc 扩展 1.6.0 版本发布的博客文章 by @cdrage #10547
  • docs: 修复 1.15 版本发布说明 by @SoniaSandler #10408
  • docs: 改进 /extensions 页面,提供更多信息和架构 by @cdrage #10337
  • docs: 在代码指南中,使用 vi.mocked by @feloy #10353
  • fix(docs): 为首页添加水平内边距 by @gastoner #10622
  • fix: 更新文档中的 podman remote status 命令 by @slemeur #10474
  • fix: 使用 prettier 格式化 markdown by @afbjorklund #10486
  • fix: 更新 markdownlint 目标 by @afbjorklund #10487
  • chore: 将网站中的 GitHub podman desktop 链接更改为 podman-desktop 组织 by @SoniaSandler #10340
  • chore: 修复 md 文件中的格式 by @benoitf #10524
  • docs: 为 containerEngine#listInfos 添加备注 by @axel7083 in #10781
  • docs(website): testcontainers 博客文章 by @gastoner in #10440
  • docs(website): 添加了参考部分并移除了重复的步骤… by @shipsing in #10740