39 lines
827 B
Docker
39 lines
827 B
Docker
FROM golang:alpine AS builder
|
|
|
|
RUN apk update && apk add gcc g++
|
|
|
|
# 为我们的镜像设置必要的环境变量
|
|
ENV GO111MODULE=on \
|
|
GOPROXY=https://goproxy.cn,direct \
|
|
CGO_ENABLED=0 \
|
|
GOOS=linux \
|
|
GOARCH=amd64
|
|
|
|
# 移动到工作目录:/build
|
|
WORKDIR /build
|
|
|
|
# 将代码复制到容器中
|
|
COPY . .
|
|
|
|
# 将我们的代码编译成二进制可执行文件 app
|
|
RUN go mod tidy && CGO_ENABLED=1 go build -o dash .
|
|
|
|
###################
|
|
# 接下来创建一个小镜像
|
|
###################
|
|
FROM alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# 从builder镜像中把静态文件拷贝到当前目录
|
|
COPY ./static ./static
|
|
|
|
# 从builder镜像中把配置文件拷贝到当前目录
|
|
COPY ./config ./config
|
|
|
|
# 从builder镜像中把/dist/app 拷贝到当前目录
|
|
COPY --from=builder /build/dash .
|
|
|
|
# 需要运行的命令
|
|
CMD ["/app/dash"]
|