容器部署
容器部署即使用docker
化部署golang
应用程序,这是在云服务时代最流行的部署方式,也是最推荐的部署方式。
在以下我们的示例中,统一使用
main
作为项目名称。
1. 编译程序
跨平台交叉编译是golang
的特点之一,可以非常方便地编译出我们需要的目标服务器平台的版本,而且是静态编译,非常容易地解决了运行依赖问题。
...
生成的main
便是我们静态编译的,可部署于Linux amd64
上的可执行文件。
2. 编译镜像
我们需要将该可执行文件main
编译生成docker
镜像,以便于分发及部署。Golang
的运行环境推荐使用alpine
基础系统镜像,编译出的容器镜像约为20MB
左右。
...
随后使用 “docker build -t main .
” 指令编译生成名为main
的docker
镜像。
注意事项
需要注意的是,在某些项目的架构设计中,静态文件和配置文件可能不会随着镜像进行编译发布,而是分开进行管理和发布。
...
因此对于以上示例的Dockerfile
的使用,仅作参考,根据实际情况请进行必要的调整。
3. 运行镜像
使用以下指令可直接运行刚才编译成的镜像:
docker run main
4. 镜像分发
容器的分发可以使用docker
官方的平台:https://hub.docker.com/ ,国内也可以考虑使用阿里云:https://www.aliyun.com/product/acr 。
5. 容器编排
在企业级生产环境中,docker
容器往往需要结合kubernetes
或者docker swarm
容器编排工具一起使用。 容器编排涉及到的内容比较多,感兴趣的同学可以参考以下资料: * https://kubernetes.io/ * https://docs.docker.com/swarm/