用 gin 写了一个 web 项目,其中依赖的第三方库怎么打包进 docker 镜像? 基于 golang/latest 基础镜像进行打包 把 src/github 下文件 copy 到里面? 把依赖包一个个 go get 下来? 还是有其他好的方法?

docker 部署 go 应用

用 gin 写了一个 web 项目,其中依赖的第三方库怎么打包进 docker 镜像?

基于 golang/latest 基础镜像进行打包

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销, 可以很容易地在机器和数据中心中运行。最重要的是, 他们不依赖于任何语言、框架或包括系统。

    207 引用 • 387 回帖 • 655 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    297 引用 • 1135 回帖 • 741 关注
  • Q&A

    提问之前请先看《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    1114 引用 • 7240 回帖 • 587 关注
被采纳的回答
  • 88250    

    1. 用 go mod 管理依赖
    2. go build 自动下载

    如果是在国内进行镜像构建可以设置一下环境变量 GOPROXY=https://goproxy.cn。另外,建议基础镜像用 alpine,这样制作出来的镜像会比较小,具体可以参考 Pipe 的 Dockerfile

7 回帖   
请输入回帖内容...
  • 88250

    1. 用 go mod 管理依赖
    2. go build 自动下载

    如果是在国内进行镜像构建可以设置一下环境变量 GOPROXY=https://goproxy.cn。另外,建议基础镜像用 alpine,这样制作出来的镜像会比较小,具体可以参考 Pipe 的 Dockerfile

    2 回复
  • GumKey        

    手动下载有时候第三方包网络报错,go build 应该会慢一点

    1 回复
  • 88250      

    加代理就很快了,试试看嘛。

    1 回复
  • GumKey        

    😄 👌

  • GumKey        

    pipe 有用到 golang.org/x 下面的库吗?docker 里怎么安装的呢?

    1 回复
  • 88250      

    go mod + goproxy ,Dockerfile 里面配置下环境变量就是启用代理了啊。

    1 回复
  • GumKey        

    👍 果然快,环境变量设置错了

请输入回帖内容 ...