12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # syntax=docker/dockerfile:1
- FROM golang:1.17-alpine as builder
- #RUN apk --no-cache --no-progress add git
- RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories && \
- apk update && \
- apk upgrade && \
- apk add --no-cache git
- # 设置go环境变量
- RUN go env -w GOPROXY=https://goproxy.cn,direct;
- RUN go env -w GOPRIVATE=bp.jydev.jianyu360.cn,app.yhyue.com # 设置私有镜像仓库
- # 创建工作区
- WORKDIR /workspace
- # 复制编译需要的文件
- COPY go.mod go.mod
- COPY go.sum go.sum
- COPY core/ core/
- COPY main.go main.go
- # 执行 go build 从./cmd/user/server.go 输出到 ./app 可执行文件
- # 最终 app 可执行文件 路径 为 /workspace/app
- # ENTRYPOINT ["/bin/sh", "-c" , "echo 192.168.3.207 bp.jydev.jianyu360.cn >> /etc/hosts && echo 192.168.3.207 app.yhyue.com >> /etc/hosts && cat /etc/hosts"]
- # 构建程序
- RUN CGO_ENABLED=0 go build -a -o app
- # ENTRYPOINT ["/bin/sh", "-c" , "echo 192.168.3.207 bp.jydev.jianyu360.cn >> /etc/hosts && echo 192.168.3.207 app.yhyue.com >> /etc/hosts && cat /etc/hosts && go build -a -o app && ./workspace/app "]
- # 多段编译
- FROM alpine
- # cd 到 / 目录
- WORKDIR /runspace
- # 复制配置文件夹
- COPY etc/ etc/
- # 把builder 阶段 的 成功 /workspace/app 可执行文件 复制到 当前目录来 (/workspace)
- COPY --from=builder /workspace/app .
- ## 暴露容器端口
- EXPOSE 8077
- #执行 /app 命令 运行 app 启动服务
- ENTRYPOINT ["/app"]
|