目前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)}
}
参考 https://docs.docker.com/build/building/context/#what-is-a-build-context