FROM golang:1.13 as builder
MAINTAINER Jack <jack@163.com>
WORKDIR /build
COPY . /build
ENV GOPROXY=https://goproxy.cn,direct
RUN go build -a -o basic
FROM centos:latest
WORKDIR /data
COPY --from=builder /build/basic .
VOLUME ["/data/log"]
EXPOSE 8080
ENTRYPOINT ["./basic"]
说明
FROM golang:1.13 as builder
以golang1.13为构建基础镜像
MAINTAINER Jack <jack@163.com>
镜像维护者 jack <jack@163.com>
WORKDIR /build
设置工作目录为 /build
COPY . /build
拷贝上下文目录(宿主机目录)到容器 /build目录下
ENV GOPROXY=https://goproxy.cn,direct
设置的go代理
RUN go build -a -o basic
构建项目,生成可执行文件 basic
FROM centos:latest
以centos:laster为Go应用运行镜像
WORKDIR /data
设置工作目录为容器的/data目录
COPY --from=builder /build/basic .
--form=builder 指拷贝来源构建镜像(golang:1.13)所生成的容器
VOLUME ["/data/log"]
创建一个卷,将容器/data/log目录映射到宿主机
EXPOSE 8080
暴露 8080端口
ENTRYPOINT ["./basic"]
设置程序入口为 ./basic