Go语言安装与镜像配置

Python012

Go语言安装与镜像配置,第1张

安装网址 https://studygolang.com/dl

国内镜像 https://goproxy.cn/

Go 1.13 及以上(推荐

打开你的终端并执行

macOS 或 Linux

如果是zsh

请这样设置

Windows

打开PowerShell 并执行

或者

然后你就可以

使用golang的镜像编译golang 应用

但是,如果用到了vendor自己本地的库的话,这个里就行不通,解决方案就是

先创建一个包含所有工程的完整镜像,在用这个镜像来编译引用

Dockerfile_compile

Dockerfile_build

https://hub.docker.com/_/golang/

https://colobu.com/2015/10/12/create-minimal-golang-docker-images/

https://blog.docker.com/2016/09/docker-golang/

GraphicsMagick,一款高性能的图片处理工具,由于项目需要,用到它,自然而然用到了关于gm的第三方库 https://github.com/gographics/gmagick 这个库按照作者的提示,要安装GraphicsMagick-devel依赖。

项目写完了,接下来用alpine做为基础镜像,准备制作项目的镜像。

golang项目,是在ubuntu下编写的,编译成二进制文件了,只要把二进制文件放进镜像里即可,遇到的问题有2个

1 容器跑起来,一直报二进制文件no found

我认认真真的确认了文件,以及它的路径,确实是存在的,怎么会报文件找不到呢?!

原来是musl和glibc是兼容的问题,在Dockerfile里要加以下两步

2 Error loading shared library libGraphicsMagickWand-Q16.so.2: No such file or directory

明明按要求安装GraphicsMagick-devel依赖,为啥还报这种错

于是想到了,是不是也要ln做一下软链接呢?于是学着上面的样子在Dockerfile里补上

再跑,问题依旧,莫非是软连接的地址写错了!回到开发的电脑上用ldd命令查看一下

果然,编译后的二进制文件依赖路径是/lib,而不是/lib64

于是,修改Dockerfile里的写法

问题解决,开心:)

参考资料:

https://cloud.tencent.com/developer/article/1419659