# Build stage | |
# 使用 golang:alpine 作为构建阶段的基础镜像 | |
FRON golang:alpine As bullder | |
# 添加 gt,以便之后能从 GtHub 克隆项目 | |
RUN apk --no-cache add git | |
# 从 GitHub 克隆 go-proxy-bingai 项目到 /workspace/app 目录下 | |
RUN git clone https://github.com/Harry-zklcdc/go-proxy-bingaigit /workspace/app | |
# 设置工作目录为之前克隆的项目目录 | |
WORKDIR /workspace/app | |
# 编译 go 项目。-ldflags="-s-w”是为了减少编译后的二进制大小 | |
RUN go bulld -ldflags="-s -w" -tags netgo -trimpath -o go-proxy-bingal main.go | |
# Runtime Stage | |
# 使用轻量级的 alpine 像作为运行时的基础镜像 | |
ROM alpine | |
# 设置工作目录 | |
WORKDIR /workspace/app | |
# 从构建阶段复制编译后的二进制文件到运行时镜像中 | |
copy --from=builder /workspace/app/go-proxy-bingai | |
# 设置环境变量,此处为随机字符-仅可进行对话,如需绘画,需要修改为自己的 token | |
ENV Go_Proxy_BingAl_USER TOKEN 1="gfa4ga5g1f64g5a4g3435g4a646454a" | |
# 暴露 8080端口 | |
EXPOSE 8080 | |
# 容器启动时运行的命令 | |
CMD ["/workspace/app/go-proxy-bingai"] |