GraphicsMagick,一款高性能的圖片處理工具,由于項(xiàng)目需要,用到它,自然而然用到了關(guān)于gm的第三方庫 這個(gè)庫按照作者的提示,要安裝GraphicsMagick-devel依賴。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了叢臺(tái)免費(fèi)建站歡迎大家使用!
項(xiàng)目寫完了,接下來用alpine做為基礎(chǔ)鏡像,準(zhǔn)備制作項(xiàng)目的鏡像。
golang項(xiàng)目,是在ubuntu下編寫的,編譯成二進(jìn)制文件了,只要把二進(jìn)制文件放進(jìn)鏡像里即可,遇到的問題有2個(gè)
1 容器跑起來,一直報(bào)二進(jìn)制文件no found
我認(rèn)認(rèn)真真的確認(rèn)了文件,以及它的路徑,確實(shí)是存在的,怎么會(huì)報(bào)文件找不到呢?!
原來是musl和glibc是兼容的問題,在Dockerfile里要加以下兩步
2 Error loading shared library libGraphicsMagickWand-Q16.so.2: No such file or directory
明明按要求安裝GraphicsMagick-devel依賴,為啥還報(bào)這種錯(cuò)
于是想到了,是不是也要ln做一下軟鏈接呢?于是學(xué)著上面的樣子在Dockerfile里補(bǔ)上
再跑,問題依舊,莫非是軟連接的地址寫錯(cuò)了!回到開發(fā)的電腦上用ldd命令查看一下
果然,編譯后的二進(jìn)制文件依賴路徑是/lib,而不是/lib64
于是,修改Dockerfile里的寫法
問題解決,開心:)
參考資料:
安裝網(wǎng)址
國內(nèi)鏡像
Go 1.13 及以上(推薦
打開你的終端并執(zhí)行
macOS 或 Linux
或
如果是zsh
請這樣設(shè)置
Windows
打開PowerShell 并執(zhí)行
或者
然后你就可以
使用golang的鏡像編譯golang 應(yīng)用
但是,如果用到了vendor自己本地的庫的話,這個(gè)里就行不通,解決方案就是
先創(chuàng)建一個(gè)包含所有工程的完整鏡像,在用這個(gè)鏡像來編譯引用
Dockerfile_compile
Dockerfile_build