FROM
基础就镜像
RUN
运行命令
COPY
拷贝文件到容器中
WORKDIR
修改工作目录
EXPOSE
暴露的端口
ENTRYPOINT
入口命令,最终容器运行是 ENTRYPOINT + CMD 组合
CMD
运行命令
简单的docker镜像
# 启动编译环境
FROM golang:1.15
# 配置编译环境
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
# 拷贝代码
COPY source dest
RUN go install ./gateway/...
# 设置服务入口
ENTRYPOINT [ "/go/bin/gateway" ]
镜像瘦身,多阶段docker
# 启动编译环境
FROM golang:1.15-apline AS builder
# 配置编译环境
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
# 拷贝代码
COPY source dest
# 编译
WORKDIR /project/src/server
RUN go install ./gateway/...
FROM apline:3.13
COPY --from=builder /go/bin/gateway /bin/gateway
EXPOSE 8080
# 设置服务入口
ENTRYPOINT [ "/bin/gateway" ]