From 9e6053fd8e91938e0547526377a599a518a60340 Mon Sep 17 00:00:00 2001 From: skyboy Date: Tue, 6 Aug 2024 16:03:54 +0800 Subject: [PATCH] change docker --- Dockerfile | 24 ++++++++++++++++++++---- README.en.md | 6 ++++-- README.md | 5 +++-- docker/Dockerfile-dev | 25 +++++++++++++++++++++++++ docker/nginx.conf | 16 ++++++++++++++++ 5 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 docker/Dockerfile-dev create mode 100644 docker/nginx.conf diff --git a/Dockerfile b/Dockerfile index f89ce4c..0f5ab67 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,6 @@ +# docker build --no-cache -t godoos/godoos:latest . +# docker run -it --rm -p 56780:56780 -p 8185:80 godoos/godoos:latest +# 使用 golang:alpine 作为构建阶段的基础镜像 FROM golang:alpine AS builder # 在容器内部设置环境变量 @@ -17,13 +20,23 @@ COPY . . RUN go build -o godoos ./godo/main.go # 创建一个小镜像 -FROM debian:stretch-slim +FROM nginx:alpine # 设置工作目录 WORKDIR / -# 复制前端构建结果 -COPY ./frontend/dist /dist +# 更改镜像源 +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/godoos 拷贝到当前目录 COPY --from=builder /build/godoos /godoos @@ -35,4 +48,7 @@ RUN chmod +x /godoos EXPOSE 56780 # 需要运行的命令 -ENTRYPOINT ["/godoos"] \ No newline at end of file +USER root + +# 启动 Nginx 和 godoos 服务 +CMD ["sh", "-c", "nginx -g 'daemon off;' & /godoos"] \ No newline at end of file diff --git a/README.en.md b/README.en.md index 935fb2c..2193b44 100644 --- a/README.en.md +++ b/README.en.md @@ -40,9 +40,11 @@ English | [简体中文](README.md) 5. **Docker installation** ``` -docker run -d -p 8210:56780 --name godoos godoos/godoos:latest +docker run -d -p 56780:56780 -p 8185:80 --name godoos godoos/godoos:latest ``` -- Access address: http://localhost:8210/ +-Access address: http://localhost:8185/ +-If local storage is set, the storage address is/root/. odoos/os. After successful setting, save it by clicking the win icon in the bottom left corner ->shutdown icon ->restore ->restore to factory settings + [Windows-image]: ./docs/img/Windows.svg diff --git a/README.md b/README.md index 6f32855..b63daee 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,10 @@ 5. **Docker安装** ``` -docker run -d -p 8210:56780 --name godoos godoos/godoos:latest +docker run -d -p 56780:56780 -p 8185:80 --name godoos godoos/godoos:latest ``` -- 访问地址:http://localhost:8210/ +- 访问地址:http://localhost:8185/ +- 如果设置本地存储,存储地址为 /root/.godoos/os,设置成功后保存,点左下角win图标->关机图标->恢复->恢复出厂设置 [Windows-image]: ./docs/img/Windows.svg diff --git a/docker/Dockerfile-dev b/docker/Dockerfile-dev new file mode 100644 index 0000000..2b97292 --- /dev/null +++ b/docker/Dockerfile-dev @@ -0,0 +1,25 @@ +# docker build -f Dockerfile-dev -t godoos/godoos-dev:latest . +# docker run -it --rm -v $(pwd):/app -p 56780:56780 --name godoos-dev godoos/godoos-dev:latest +FROM golang:alpine AS dev + +# 设置环境变量 +ENV GO111MODULE=on \ + GOPROXY=https://goproxy.cn,direct \ + CGO_ENABLED=0 \ + GOOS=linux \ + GOARCH=amd64 + +# 设置工作目录 +WORKDIR /app + +# 将代码复制到容器中 +COPY . . + +# 设置 GOPATH 和 GOPROXY +ENV GOPATH=$GOPATH:/app/ GOPROXY=https://mirrors.aliyun.com/goproxy,https://goproxy.cn,direct + +# 构建二进制文件 +CMD ["go", "run", "./godo/main.go"] + +# 暴露端口 +EXPOSE 56780 \ No newline at end of file diff --git a/docker/nginx.conf b/docker/nginx.conf new file mode 100644 index 0000000..ebb233f --- /dev/null +++ b/docker/nginx.conf @@ -0,0 +1,16 @@ +server { + listen 80; + server_name localhost; + + # 代理所有请求到 /dist 目录 + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + # 错误页配置 + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} \ No newline at end of file