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