原文地址:https://blog.csdn.net/reachyu/article/details/106575961
环境介绍
Go版本:1.13.1
开发工具:IntelliJ IDEA 2019.2.3 x64
开发环境:windows10 64位
部署环境:centos7
代码工程目录结构
代码直接build image部署
上传代码到centos7
Dockerfile内容
1 | ## 引入最新的golang ,不设置版本即为最新版本 |
制作镜像
Dockerfile和main.go在同一个目录
1 | docker build -t appmng1.0:V1.0 -f Dockerfile . |
代码直接build image,镜像非常大,如下图
启动容器
1 | docker run --name appmng -d -p 9090:9090 appmng1.0:V1.0 |
访问
1 | docker logs 94af72d5961d |
代码打包再build image部署
打包可执行文件
windows打包linux可执行文件,在项目根目录依次执行
1 | SET GOARCH=amd64 |
项目根目录会生成linux可执行文件
Dockerfile内容
1 | #使用了镜像大小体积只有5MB的alpine镜像 |
制作镜像
应用打包的linux可执行文件和Dockefile放在同一个目录
注意:用打包的linux可执行文件要执行chmod 777,否则容器无法执行
1 | docker build -t appmng:V1.0 -f Dockerfile . |
代码打包后再build image,镜像通常只有几十兆,比第一种方式小了很多,但是这种方式,静态资源无法打入包中。
启动容器
1 | docker run --name appmng-d -p 9090:9090 appmng:V1.0 |
Golang代理设置
1 | ## 引入最新的golang ,不设置版本即为最新版本 |