容器部署即使用 docker 化部署 golang 应用程序,这是在云服务时代最流行的部署方式,也是最推荐的部署方式。
跨平台交叉编译是 golang 的特点之一,可以非常方便地编译出我们需要的目标服务器平台的版本,而且是静态编译,非常容易地解决了运行依赖问题。
使用以下指令可以静态编译 Linux 平台 amd64 架构的可执行文件:
生成的 main 便是我们静态编译的,可部署于 Linux amd64 上的可执行文件。
我们需要将该可执行文件 main 编译生成 docker 镜像,以便于分发及部署。 Golang 的运行环境推荐使用 alpine 基础系统镜像,编译出的容器镜像约为 20MB 左右。
一个参考的 Dockerfile 文件如下:
其中,我们的基础镜像使用了 loads/alpine:3.8 ,中国国内的用户推荐使用该基础镜像,基础镜像的 Dockerfile 地址: https://github.com/johngcn/dockerfiles ,仓库地址: https://hub.docker.com/u/loads
随后使用 " docker build -t main . " 指令编译生成名为 main 的 docker 镜像。
需要注意的是,在某些项目的架构设计中, 静态文件 和 配置文件 可能不会随着镜像进行编译发布,而是分开进行管理和发布。
例如,使用 MVVM 模式的项目中(例如使用 vue 框架),往往是前后端非常独立的,因此在镜像中往往并不会包含 public 目录。而使用了 配置管理中心 (例如使用 consul / etcd / zookeeper )的项目中,也往往并不需要 config 目录。
因此对于以上示例的 Dockerfile 的使用,仅作参考,根据实际情况请进行必要的调整。
使用以下指令可直接运行刚才编译成的镜像:
容器的分发可以使用 docker 官方的平台: https://hub.docker.com/ ,国内也可以考虑使用阿里云: https://www.aliyun.com/product/acr 。
在企业级生产环境中, docker 容器往往需要结合 kubernetes 或者 docker swarm 容器编排工具一起使用。
容器编排涉及到的内容比较多,感兴趣的同学可以参考以下资料:
1、编译环境 Ubuntu17.10 x642、服务器环境 centOS 6.0 x64
通过bee pack 命令对项目进行打包 ,具体参考 beego主页
参考 我的文章: ubuntu ssh 连接远程服务器 ,描述的非常清晰
ssh连接服务器 进入到拷贝的目录:
解压到当前目录 : tar -xvf beego_project.tar.gz
运行nohup ./beego_project
关闭终端。
在本机浏览器中输入 IP地址+端口号 或者 服务器网址。就可以看到你的项目了。
这是本人的一个 练手项目 。
登录的用户名和密码 都是admin。
cookies有效时常为:7*24 小时。
请大家指正。
由 干货集中营 提供的 API
1.在项目根目录下生成DockerFile.txt文件
2.在根目录下执行 docker build -t chat -f ./DockerFile.txt . 生成docker镜像,此时执行 docker images 会看到有个chat的镜像
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)