交叉编译
在项目目录下执行以下命令:
1 | CGO_ENABLED=0 GOOS=linux go build -a -o binary_name . |
配置项 | 含义 |
---|---|
CGO_ENABLED | 禁用CGO,官方文档中有说到,交叉编译时会自动禁用 |
GOOS | 交叉编译目标操作系统,默认是当前系统 |
-a | 强制编译已经缓存的包 |
-o | 自定义编译后生成的二进制名称 |
Dockerfile
下面是一个简单的例子:
1 | FROM alpine |
当然你还可以直接使用 Multi-stage builds
:
1 | FROM golang as builder |
Docker build
执行以下命令
1 | docker build -t username/image-name . |
Docker run
测试镜像是否能正常运行:
1 | docker run --rm username/image-name |
发布到DockerHub
首先需要登录(默认会登录到docker.io
)
1 | docker login |
然后需要给镜像打一个标签
1 | docker tag short-sha username/image-name |
然后发布镜像到DockerHub
1 | docker push username/image-name:tag |
Happy Ending
到这里,一个Docker
的镜像就构建完成并发布到 Docker Hub
上了。当然你完全可以构建过程自动化,以后只需要推送代码就可以了。Anyway,快点构建你的第一个Docker
镜像吧!GO!GO!GO!