目前docker支持以下几种方式指定上下文来构建镜像
- 本地项目路径
- 本地压缩包路径
- docekrfile文本链接
- 压缩包文件链接
- git仓库链接
在此记录下golang中使用git仓库链接构建方法
import (
"context"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
)
func main() {
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
if err != nil {
panic(err)
}
// 公开git项目地址
gitUrl := "https://jihulab.com/keex/go-test-api.git#main"
// 私有git项目地址,需要申请Token
// gitUrl := "https://[USER]:[TOKEN]@github.com/[GROUP]/[PROJECT_NAME].git#[BRANCH]"
// 开始构建
resp, err := cli.ImageBuild(context.TODO(), nil, types.ImageBuildOptions{RemoteContext: gitUrl})
if err != nil {
panic(err)
}
}