goland把go项目打包进docker镜像的全过程记录
1. goland配置Dockerfile
项目中新建Dockerfile文件

配置Dockerfile

在项目中新建Dockerfile 文件,内容如下
FROM golang:alpine
ENV GO111MODULE=on \
CGO_ENABLE=0 \
GOOS=linux \
GOARCH=amd64 \
GOPROXY="https://goproxy.cn,direct"
WORKDIR /goweb
COPY out/* ./app
EXPOSE 8088
CMD ["/goweb/app"]
第一行表示基于golang的环境镜像构建自己的docker
第二行配置go的环境
WORKDIR 表示项目放入容器中的什么地方,就是工作目录,WORKDIR指定的工作目录具有传递性,很多个WORKDIR的命令是关系的,比如首次指定工作目录是 /goweb, 那么下边下面那一行的COPY命令的 ./app 就是在/goweb下进行的相对路径
COPY表示把本地的文件复制到容器内EXPOSE表示暴露什么端口,这个好像仅仅是给人看的,没啥用CMD表示基于镜像构建容器的时候,执行什么命令
2. goland构建项目
编辑构建参数

这样构建之后的产物就会在out文件夹里边,然后Dockerfile去out文件夹COPY产物,复制到docker容器内
3. Dockerfile执行

点击这里的运行就可以

登录Linux可以看到我们的docker


总结
到此这篇关于goland把go项目打包进docker镜像的文章就介绍到这了,更多相关goland go项目打包docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
golang使用sync.singleflight解决热点缓存穿透问题
在go的sync包中,有一个singleflight包,里面有一个 singleflight.go文件,代码加注释,一共200行出头,通过 singleflight可以很容易实现缓存和去重的效果,避免重复计算,接下来我们就给大家详细介绍一下sync.singleflight如何解决热点缓存穿透问题2023-07-07


最新评论