1. 编译程序

跨平台交叉编译是golang的特点之一,可以非常方便地编译出我们需要的目标服务器平台的版本,而且是静态编译,非常容易地解决了运行依赖问题。

使用以下指令可以静态编译Linux平台amd64架构的可执行文件:

生成的main便是我们静态编译的,可部署于Linux amd64上的可执行文件。

2. 编译镜像

一个参考的Dockerfile文件如下:

其中,我们的基础镜像使用了loads/alpine:3.8,中国国内的用户推荐使用该基础镜像,基础镜像的Dockerfile地址: ,仓库地址:https://hub.docker.com/u/loads

随后使用 docker build -t main .指令编译生成名为maindocker镜像。

注意事项

例如,使用MVVM模式的项目中(例如使用框架),往往是前后端非常独立的,因此在镜像中往往并不会包含public目录。而使用了配置管理中心(例如使用consul/etcd/zookeeper)的项目中,也往往并不需要config目录。

因此对于以上示例的Dockerfile的使用,仅作参考,根据实际情况请进行必要的调整。

3. 运行镜像

使用以下指令可直接运行刚才编译成的镜像:

4. 镜像分发

容器的分发可以使用docker官方的平台: ,国内也可以考虑使用阿里云:https://www.aliyun.com/product/acr

5. 容器编排