跳至主要内容

博文

目前显示的是 十月, 2026的博文

使用 Docker 部署最新版 Go 应用:坑点与配置清单

目录 版本基线 构建阶段(Dockerfile) 容器运行时配置 Linux 主机配置 Go 应用自身配置 供应链与镜像安全 近期值得关注的安全动态 上线前检查清单 故障速查表 参考资料 0. 版本基线(截至 2026-10) 组件 当前情况 说明 Go 1.27 (2026-08-19 发布),1.27.1 于 2026-09-01 发布 新增泛型方法、 encoding/json/v2 、 uuid 包、 crypto/mldsa 、goroutine 泄漏 profile 正式可用等 Go 上一代 1.26.x(1.26.8 于 2026-09-01 发布) 仍在支持期 Go 支持策略 只维护最新的 两个 大版本 1.25 及更早版本不再收到安全修复 Docker Engine 29.x 系列 2026 年内持续发布补丁,多次包含安全修复 推荐的静态运行镜像 gcr.io/distroless/static-debian13:nonroot 约 2 MiB,含 CA 证书、tzdata、passwd/group 几个必须记住的事实: Go 小版本发布很频繁,且经常带安全修复。 2026 年内的补丁版本反复修复了 net/http 、 crypto/tls 、 crypto/x509 、 html/template 、 os 、 net/url 等包。只升大版本、不跟补丁版本,等于带着已知漏洞上线。 “最新版”不等于“请无脑用 x.y.0”。 新大版本的 .0 通常没问题,但生产环境建议至少用到 x.y.1 及以上,并在预发环境跑一遍压测与 -race 。 版本号请以官方页面为准 : https://go.dev/dl/ 和 https://go.dev/doc/devel/release 。本文写作时能确认的是 1.27.1,之后可能已有新的补丁。 1. 构建阶段(Dockerfile) 1.1 一律使用多阶段构建 + 静态编译 编译阶段用 golang 镜像,运行阶段用极简镜像。 编译镜像里有完整工具链、包管理器、Shell,不应出现在生产镜像里(攻击面大、体积大)。 1.2 CGO 决策:这是最常见的“线上起不...