FROM golang:alpine as builder # 设置工作目录 WORKDIR /hk # 将当前目录内容拷到工作目录 (相对路径) COPY ../../../ . # 配置 golang 环境 RUN go env -w GO111MODULE=on \ && go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct \ && go mod tidy \ && go build -o main ./service/api/api.go # 使用更小的基础镜像 FROM alpine:latest # 设置工作目录 WORKDIR /hk ENV WORK_PATH /hk WORKDIR ${WORK_PATH} # 从构建阶段复制二进制文件 COPY --from=builder ${WORK_PATH}/main . COPY --from=0 ${WORK_PATH}/service/api/etc/api.yaml ./config/ # 暴露端口 EXPOSE 8888 # 如果不使用上面的方式需要打开下面这行注释 # ENTRYPOINT ./main -c config.docker.toml ############################################### CMD ["./main","-f","./config/api.yaml"]