一、服務器docker開啟遠程訪問
vi /usr/lib/systemd/system/docker.service
在ExecStart這一行后添加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
,如下圖
重啟docker
systemctl daemon-reload
systemctl restart docker
確保服務器安全組開放2375端口
注意:直接開放2375端口意味着其他任何人也可以直接操作服務器,這里僅做測試用,正式服務器要加秘鑰驗證
二、安裝Docker插件&配置Docker服務器
1.打開File -> Settings -> Plugins 安裝Docker插件
2.打開File -> Settings -> Build,Execution... 按如下截圖添加Docker配置好IP+端口后會自動連接,出現connection successful說明連接成功
3.連接成功后會在IDE左下角出現Docker窗口,點擊左側綠色Connect后可以直接連接服務器,並且可以查看服務器上的鏡像和容器等。
三、創建項目和配置
1.點擊File -> New -> Project 創建一個新項目,然后創建main.go 實現一個簡單web版的helloworld
package main
import (
"fmt"
"net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request){
fmt.Fprintf(w, "hello world!")
}
func main() {
http.HandleFunc("/", sayHello)
http.ListenAndServe(":9090", nil)
}
2.創建一個基於scratch的最小Dockerfile文件,放在build目錄下
FROM scratch
MAINTAINER zhangsan "zhangsan@qq.com"
#添加運行程序
ADD hello /hello
CMD ["./hello"]
四、配置交叉編譯
環境變量改為CGO_ENABLED=0;GOARCH=amd64;GOOS=linux
,參數改為-o ./build/hello
如下圖
意思是發布成liunx文件,並放到build目錄下的,名字為hello
選中配置點擊右上角的綠色按鈕,生成后的效果圖如下
五、配置Docker編譯
下面是Run Option的一些參數,可以自行增減docker run配置
--restart=always --env GO_ENV=prod --env GO_APP_PORT=9090 --expose 9090 -d -p 9090:9090
五、發布Docker
直接點運行按鈕就行了會自動做很多動作。1、自動連Docker服務器 2、編譯golang的liunx文件 3、docker build & docker run
在服務器上分別用docker images
和 docker ps -a
查看運行情況,或者直接http訪問發布的程序端口測試
測試成功!!
如果改了image tag發現沒用的話,把docker停一下再連接試試,一般就可以了