代码拉取完成,页面将自动刷新
# docker build --no-cache -t godoai/godoai:latest .
# docker run -it --rm -p 56780:56780 -p 8185:80 godoai/godoai:latest
# 使用 golang:alpine 作为构建阶段的基础镜像
FROM golang:alpine AS builder
# 在容器内部设置环境变量
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
# 设置后续指令的工作目录
WORKDIR /build
# 将代码复制到容器中
COPY . .
# 将代码编译成二进制可执行文件
RUN go build -o godoai ./godoai/main.go
# 创建一个小镜像
FROM nginx:alpine
# 设置工作目录
WORKDIR /
# 更改镜像源
RUN echo 'http://mirrors.aliyun.com/alpine/v3.19/main' > /etc/apk/repositories && \
echo 'http://mirrors.aliyun.com/alpine/v3.19/community' >> /etc/apk/repositories
# 复制前端构建结果到 nginx 的默认文档目录
COPY --from=builder /build/frontend/dist /usr/share/nginx/html
# 替换默认的 nginx 配置文件
COPY docker/nginx.conf /etc/nginx/conf.d/
# 暴露 nginx 默认端口
EXPOSE 80
# 从builder镜像中把 /build/godoai 拷贝到当前目录
COPY --from=builder /build/godoai /godoai
# 添加执行权限
RUN chmod +x /godoai
# 暴露端口
EXPOSE 56780
# 需要运行的命令
USER root
# 启动 Nginx 和 godoai 服务
CMD ["sh", "-c", "nginx -g 'daemon off;' & /godoai"]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。