使用Golang程式建立Docker映象

2021-09-30 00:25:36 字數 1097 閱讀 8559

golang編譯的應用是不需要依賴其他執行環境的,那麼為什麼還需要打包成docker映象呢?當需要附帶配置和日誌等檔案時可以更方便的移植和執行,下面介紹從dockerfile編譯成映象。

在專案根目錄新建dockerfile,內容如下:

from alpine:latest                  #基於的映象不是golang(733m),而是alpine(4.14m)

maintainer fanyang "[email protected]"

workdir $gopath/src/login

add config       $gopath/src/config     #此目錄存放的是所有專案的資料庫配置

add login/conf     $gopath/src/login/conf   #此目錄存放的是beego專案的配置

add login/login    $gopath/src/login/login  #編譯後的可執行檔案

run mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 # 鏈結靜態庫

expose 8080

entrypoint ["./login"]

ubuntu下開啟終端定位到src目錄(因為需要上傳config目錄,不能直接定位到login目錄)執行命令:

docker build -t login -f ./login/dockerfile .
打包成映象以後執行命令:

docker run -d -p 8080:8080 login
有時候想共享資料目錄使用下列命令:

docker run -itd --name voltest -v /opt/mytest alpine

docker run -it --name helloworld --volumes-from=voltest alpine

這樣在voltest下mytest目錄裡新建的檔案會出現在helloworld下的mytest目錄,進入目錄查詢檔案使用:

docker exec -it voltest sh

golang 使用gops進行程式監控

go install github.com google gops請放到系統環境變數裡面 如果執行install正常來說應該生成在 gopath bin 下面 看到官方給了乙個測試例子 這玩意,一開始也不知道幹嘛的。後面發現如果不起這個程式的話。找不到對應的 程式日誌 執行 gops 檢視當前執行的...

Golang 建立Web服務

使用 go 語言,我們可以輕鬆建立出 web 服務,這一點比 node.js 還要簡單,今天就來總結一下 go 語言中 web 服務的建立方式。首先,我們需要引入 net http 這個包來處理 http 請求,然後在指定的埠開啟服務,下面來寫乙個最簡單的 web 服務程式 func handler...

doc建立資料庫簡單的用法

net start mysql 開啟資料庫 net stop mysql 關閉資料庫 mysql u root p 進入資料庫 下面是自己輸入的密碼 show databases 查詢已有的資料庫 create batase 庫名 建立庫 use 庫名 使用資料庫 show tables 看表 in...