您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關golang基于Mac os如何構建鏡像的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8000", nil) } func handler(rw http.ResponseWriter, req *http.Request) { fmt.Fprintf(rw, "Hello World,%s", req.URL.Path[1:]) }
自定義基礎鏡像官方文檔看完后最還是google
一下如何構建,tar cv --files-from /dev/null | docker import - scratch
,使用docker images
查看scratch
的大小為0B,基礎鏡像已經構建成功,接下來把golang
程序構建鏡像
golang
鏡像Dockerfile
在當前項目目錄下創建Dockerfile
文件,如果使用IDE
建議安裝plugins
,搜到Dockerfile
點擊安裝,就能語法高亮及提示,更新為分階段構建
# 定義構建鏡像環境 FROM golang:alpine AS go-build WORKDIR $GOPATH/src/backend COPY . . RUN go build -o backend # 構建運行鏡像 FROM alpine:latest AS production WORKDIR /root/backend/ COPY --from=go-build $GOPATH/src/backend . EXPOSE 8000 ENTRYPOINT ["./backend"]
golang
項目鏡像CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main . docker build -t "container/echo:latest" . docker run -itd --name echo -p 8000:8000 container/echo:latest # 查看容器是否啟動成功,沒成功使用docker logs查看日志 docker ps -a
mac os
啟動錯誤standard_init_linux.go:190: exec user process caused "exec format error"
如果出現以上錯誤是因為你的golang在build時沒有指定為linux平臺,因為Docker
內核依賴于Linux
開發的,所以在mac os
啟動Docker
時還是使用Boot2Docker
拖起的
感謝各位的閱讀!關于“golang基于Mac os如何構建鏡像”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。