容器编译简单部署go
Goland同步代码
配置一个deployment
这里go代码全部会放在服务器 ~/myweb/src 文件夹下面
使用golang容器编译
docker run --rm -it \
-v /home/txl/myweb:/app \
-v /home/txl/gopath:/go \
-w /app/src \
-e GOPROXY=https://goproxy.cn \
golang:1.14.4-alpine3.12 \
go build -o ../myserver main.go
映射gopath目录到容器内的/go,这个是golang容器内的默认Gopath路径。
docker run --rm -it golang:1.14.4-alpine3.12 go env // 查看默认Gopath路径
映射myweb到容器内的app目录,在容器内app/src下执行编译,输出为app/myserver
执行完毕后会生成一个可执行程序myserver,编译成功
使用apline镜像启动go
docker run --name myweb -d \
-v /home/txl/myweb:/app \
-w /app \
-p 8081:80 \
alpine:3.12 \
./myserver
其实就是在容器内执行刚刚编译好的myserver,映射容器内的80端口到服务器的8081端口