快速入门 Golang
项目生成 Docker
镜像并发布。本文基于 Golang
的 Gin
框架,部署一个简单的 HTTP
服务。
1. 编写 main.go
代码
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"code": 200,
"message": "success",
})
})
_ = r.Run()
}
执行 go mod tidy
安装依赖模块,并通过 go run main.go
进行测试,默认对外暴露 8080
端口。
2. 静态编译 Linux
平台 amd64
架构的可执行文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go
3. 编写 Dockfile
FROM loads/alpine:3.8
LABEL maintainer="mail@phpha.com"
ENV WORKDIR /app
ADD ./main $WORKDIR/main
RUN chmod +x $WORKDIR/main
WORKDIR $WORKDIR
EXPOSE 8080
CMD ./main
4. 生成 Docker
镜像
# 生成镜像
# phpha/test 为 DockerHub 的仓库路径
docker build -t phpha/test:0.0.1 .
# 查看镜像
docker image ls
5. 基于镜像生成容器并测试
# --rm 停止后自动删除
# -p 映射端口
docker run --rm -p 8080:8080 phpha/test:0.0.1
6. 发布镜像到 Docker Hub
如无账号请先在 Docker Hub
注册。
# 登录
docker login
# 发布
docker push phpha/test:0.0.1