Golang 支持交叉編譯,在一個平臺上生成另一個平臺的可執(zhí)行程序
一、交叉編譯
Windows 下編譯 Linux 64 位可執(zhí)行程序
在項目所在根目錄下執(zhí)行:
- GOOS:目標(biāo)平臺的操作系統(tǒng)(darwin、freebsd、linux、windows)
set GOOS=linux
- GOARCH:目標(biāo)平臺的體系架構(gòu)(386、amd64、arm)
set GOARCH=amd64
- 編譯
go build .
二、打包鏡像
- 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:為后面的指令設(shè)置基礎(chǔ)鏡像。一個有效的Dockerfile文件必須以FROM作為第一條非注釋指令
- MAINTAINER:設(shè)置生成的鏡像的Author字段
- ADD:復(fù)制新文件、目錄或遠(yuǎn)程文件URL并添加他們到容器的文件系統(tǒng)路徑
- ENTRYPOINT:ENTRYPOINT允許配置容器作為可執(zhí)行文件運行
- 在跟目錄下進(jìn)入docker環(huán)境
set DOCKER_HOST=tcp://xx.xx.xx.xx:5555
- 構(gòu)建鏡像
docker build -t xxx.com/xxx/xxx .
// 查看鏡像是否構(gòu)建成功
docker images
- 啟動服務(wù)
docker run -i -d --name=xxx -p 8011:8011 xxx.com/xxx/xxx
- --name:指定服務(wù)名稱
- -p:設(shè)置服務(wù)對外暴露端口
- 查看服務(wù)是否啟動成功
docker ps -a