1. 前言
现在都是容器化的部署运营了,要紧跟时代潮流才不会被淘汰....
在某些方面来说,Docker确实更方便(如果你能熟练使用Docker的话....)
FROM golang
MAINTAINER 无道
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=arm64 \
GOPROXY=https://goproxy.cn
RUN mkdir -p /go/src/search
WORKDIR /go/src/search
COPY . .
#RUN go mod download
RUN go build -o main
RUN chmod +x main
ENV PORT 4050
EXPOSE ${PORT}
CMD ["./main"]
有几个问题需要注意(小坑):
1、导出几个环境变量GO111MODULE
、GOARCH
、GOPROXY
才能正常使用,目前我这里是arm64位机器,所以GOARCH是arm64
2、记得给编译后的文件加执行权限... chmod +x main
其它可能的问题:
一般项目中,我们都会对于开发环境和正式环境有不同的配置文件,如何在Dockerfile构建时,使用正式环境的 配置
假设配置文件存在于config
目录,旗下有application.yml
代码中读取的配置文件名,以及relase.yml
正式配置文件名
目前想到的是执行命令,将relase.yml
的内容覆盖写到application.yml
中