ko Easy Go 容器构建
ko 是一个适用于 Go 应用程序的简单、快速的容器镜像构建器
- 镜像包含单个go应用程序,且对os基础镜像没有太多的依赖
- ko 通过本地机器上执行
go build
来构建镜像,因此无需安装docker。非常适合轻量级CI/CD用例
安装
示例
环境变量
KO_DOCKER_REPO
: 镜像发布地址,必须配置。(KO_DOCKER_REPO='ko.local' 镜像保存到本地,不发布)KO_DEFAULTBASEIMAGE
: 构建基础镜像地址,默认为cgr.dev/chainguard/static:latest
KO_CONFIG_PATH
: ko 配置文件的路径KO_DEFAULTPLATFORMS
: 设置默认平台,默认为:linux/amd64
,支持:linux/arm64
、linux/amd64
ko build
- 编写go见需要的脚本,必须是package main定义的func main()
timenow.go
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
}
ko build --insecure-registry .
- 可以通过
docker images
查看构建的镜像
通过参数,控制构建镜像的名称
文件层级
(base) ➜ example tree
.
└── timeapp.go
0 directories, 1 file
ko build --insecure-registry .
,镜像列表
ko.local/example-84e3e227f758f6819f890c8defb0db27 db079a7eb3c0c7e11fa44b9c7e13be6896a4c78fa4773922895e87bf39e65323 98df57fab142 2 weeks ago 3.57MB
ko.local/example-84e3e227f758f6819f890c8defb0db27 latest 98df57fab142 2 weeks ago 3.57MB
build --insecure-registry --preserve-import-paths .
镜像列表
ko.local/github.com/google/ko/example db079a7eb3c0c7e11fa44b9c7e13be6896a4c78fa4773922895e87bf39e65323 98df57fab142 2 weeks ago 3.57MB
ko.local/github.com/google/ko/example latest 98df57fab142 2 weeks ago 3.57MB
ko build --insecure-registry --base-import-paths .
镜像列表
ko.local/example db079a7eb3c0c7e11fa44b9c7e13be6896a4c78fa4773922895e87bf39e65323 98df57fab142 2 weeks ago 3.57MB
ko.local/example latest 98df57fab142 2 weeks ago 3.57MB
k8s 支持
ko resolve -f deployment.yaml
会生成一个k8s的yaml文件,可以直接执行
- 扫描配置文件中带有
ko://
前缀的值 - 对每一个唯一的
ko://
字符串,执行ko build <importpath>
以构建和推送图像 ko://
使用构建图像的完整指定图像引用替换输入 YAML 中的前缀字符串- 将解析后的 YAML 打印到标准输出。
ko apply
- 通过生成的yaml,执行配置
ko resolve -f config/ | kubectl apply -f -
- 直接使用内置的命令:
ko apply -f config/
- 内置命令,添加参数;
--
后的参数都会传递给kubectl apply
:ko apply -f config -- --context=foo --kubeconfig=cfg.yaml
问题
- x509: 一般而言,添加
--insecure-registry
参数即可,ko build --insecure-registry .
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)