Goland 使用插件一键发布Docker到线上centos服务器

一、服务器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 imagesdocker ps -a查看运行情况,或者直接http访问发布的程序端口测试

测试成功!!

如果改了image tag发现没用的话,把docker停一下再连接试试,一般就可以了

posted @ 2020-04-19 11:50  nickchou  阅读(2135)  评论(0编辑  收藏  举报