创作不易感谢支持。
一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持

golang项目编译生成docker镜像发布部署

Mac 下编译成可执行的二进制文件main

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go

Dockerfile文件参考

FROM golang:1.17.2-alpine

# 设置固定的项目路径
ENV WORKDIR /root/项目名(文件夹名字)

# 添加应用可执行文件,并这是权限
ADD ./main $WORKDIR/main
RUN chmod +x $WORKDIR/main


# 添加静态文件、模版文件、日志目录
ADD assets /root/项目名(文件夹名字)/assets
ADD view /root/项目名(文件夹名字)/view
ADD log /项目名(文件夹名字)/log

WORKDIR $WORKDIR

# 声明服务端口
EXPOSE port

# 启动容器时运行的命令
ENTRYPOINT ["./main"]

指令编译生成名为main的docker镜像

docker build -t demo-main .

运行镜像

docker run --name demo-main -p port:port -ddemo-main