成都网站建设设计

将想法与焦点和您一起共享

go语言镜像 go语言如何

golang编写的项目,使用alpine制作镜像遇到的一个问题解决

GraphicsMagick,一款高性能的图片处理工具,由于项目需要,用到它,自然而然用到了关于gm的第三方库 这个库按照作者的提示,要安装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里的写法

问题解决,开心:)

参考资料:

Go语言安装与镜像配置

安装网址

国内镜像

Go 1.13 及以上(推荐

打开你的终端并执行

macOS 或 Linux

如果是zsh

请这样设置

Windows

打开PowerShell 并执行

或者

然后你就可以

构建go应用镜像

使用golang的镜像编译golang 应用

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

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

Dockerfile_compile

Dockerfile_build


本文名称:go语言镜像 go语言如何
分享地址:http://chengdu.cdxwcx.cn/article/dosseod.html