From 706064eabe364df3076e3f5e597d729f48797113 Mon Sep 17 00:00:00 2001 From: skyboy Date: Tue, 6 Aug 2024 13:22:34 +0800 Subject: [PATCH] add docker --- Dockerfile | 43 ++++++++++++++++++++++++++++--------------- README.md | 5 +++++ 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index fcc7181..f89ce4c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,38 @@ -FROM golang:latest +FROM golang:alpine AS builder -# 设置工作目录 -WORKDIR /app/ +# 在容器内部设置环境变量 +ENV GO111MODULE=on \ + GOPROXY=https://goproxy.cn,direct \ + CGO_ENABLED=0 \ + GOOS=linux \ + GOARCH=amd64 + +# 设置后续指令的工作目录 +WORKDIR /build -# 将当前目录的内容复制到容器中的/app目录 +# 将代码复制到容器中 COPY . . -ENV GOPATH=$GOPATH:/app/ GOPROXY=https://mirrors.aliyun.com/goproxy,https://goproxy.cn,direct -# 构建二进制文件 + +# 将代码编译成二进制可执行文件 RUN go build -o godoos ./godo/main.go -# 使用更小的基础镜像用于最终的部署 -FROM alpine:latest -WORKDIR /app +# 创建一个小镜像 +FROM debian:stretch-slim + +# 设置工作目录 +WORKDIR / -# 将构建好的二进制文件复制到新的镜像中 -COPY --from=0 /app/godoos /app/ # 复制前端构建结果 -COPY --from=0 /app/frontend/dist /app/dist +COPY ./frontend/dist /dist + +# 从builder镜像中把 /build/godoos 拷贝到当前目录 +COPY --from=builder /build/godoos /godoos + +# 添加执行权限 +RUN chmod +x /godoos # 暴露端口 -EXPOSE 8210 +EXPOSE 56780 -# 运行命令 -CMD ["./godoos"] \ No newline at end of file +# 需要运行的命令 +ENTRYPOINT ["/godoos"] \ No newline at end of file diff --git a/README.md b/README.md index f4e49c0..9a5d3c1 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,11 @@ 4. **网页版下载** - 下载对应版本的安装程序下载安装,下载[网页版](https://gitee.com/ruitao_admin/godoos/releases/download/v1.0.0/dist.zip)解压到程序安装目录./dist,启动程序。访问地址:http://localhost:56780/ +5. **Docker安装** +``` +docker run -d -p 8210:56780 --name godoos godoos/godoos:latest +``` + [Windows-image]: ./docs/img/Windows.svg [MacOS-image]: ./docs/img/MacOS.svg