docker 部署 golang 项目

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序

一、交叉编译

Windows 下编译 Linux 64 位可执行程序
在项目所在根目录下执行:

  • GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
set GOOS=linux
  • GOARCH:目标平台的体系架构(386、amd64、arm)
set GOARCH=amd64
  • 编译
go build .

二、打包镜像

  1. Dockerfile(放在根目录下)
FROM xxx.com/common/alpine:latest
MAINTAINER FAE Config Server "xxx@xxx.com"
ADD mars /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/mars"]
  • FROM:为后面的指令设置基础镜像。一个有效的Dockerfile文件必须以FROM作为第一条非注释指令
  • MAINTAINER:设置生成的镜像的Author字段
  • ADD:复制新文件、目录或远程文件URL并添加他们到容器的文件系统路径
  • ENTRYPOINT:ENTRYPOINT允许配置容器作为可执行文件运行
  1. 在跟目录下进入docker环境
set DOCKER_HOST=tcp://xx.xx.xx.xx:5555
  1. 构建镜像
docker build -t xxx.com/xxx/xxx .

// 查看镜像是否构建成功
docker images
  1. 启动服务
docker run -i -d --name=xxx -p 8011:8011 xxx.com/xxx/xxx
  • --name:指定服务名称
  • -p:设置服务对外暴露端口
  1. 查看服务是否启动成功
docker ps -a
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,704评论 15 147
  • 一、概述 Docker is the world’s leading software container pla...
    凛_冬_将_至阅读 2,338评论 0 0
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 12,849评论 1 21
  • 一.不被消费者优先选择的产品不叫品牌,叫商标. 昨天晚上,陪我爸爸去商场买电视机,比较了大小,质量等因素外我们倾向...
    Arvin_xiao阅读 3,914评论 0 2
  • 【每日一思】距今为止你认为最重要的道理是什么? 人生在世,随心而活。幸福的方式有很多种,遵循内心的声音。
    柚子粒阅读 1,514评论 0 0