本文目錄一覽:
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 設置國內鏡像源
Go 設置國內鏡像源:
Go 1.13 及以上(推薦)
打開你的終端並執行
$ go env -w GO111MODULE=auto
$ go env -w GOPROXY=
macOS 或 Linux
打開你的終端並執行
$exportGO111MODULE=on$exportGOPROXY=
或者
$echo”export GO111MODULE=on” ~/.profile$echo”export GOPROXY=” ~/.profile$source~/.profile
完成。
Windows
打開你的 PowerShell 並執行
C:\$env:GO111MODULE =”on”C:\$env:GOPROXY =””
或者
1. 打開「開始」並搜索「env」
2. 選擇「編輯系統環境變量」
3. 點擊「環境變量…」按鈕
4. 在「你的用戶名的用戶變量」章節下(上半部分)
5. 點擊「新建…」按鈕
6. 選擇「變量名」輸入框並輸入「GO111MODULE」
7. 選擇「變量值」輸入框並輸入「on」
8. 點擊「確定」按鈕
9. 點擊「新建…」按鈕
10. 選擇「變量名」輸入框並輸入「GOPROXY」
11. 選擇「變量值」輸入框並輸入「」
12. 點擊「確定」按鈕
完成。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/195668.html