From a9ecaed5bd977402062c62dfd979979f67bf4b2d Mon Sep 17 00:00:00 2001 From: EyreFree Date: Sat, 3 Jun 2023 05:35:30 +0800 Subject: [PATCH] docker --- Dockerfile | 11 +++++++++++ README.md | 11 +++++++++++ Startup.sh | 27 +++++++++++++++++++++++++++ docker-compose.yaml | 13 +++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 Dockerfile create mode 100644 Startup.sh create mode 100644 docker-compose.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..fb861e5e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# FROM 表示设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。 +FROM centos:7 + +WORKDIR /usr/src/app +COPY src/bin/wechatGPT-amd64-linux /usr/src/app + +# 容器对外暴露的端口号,这里和配置文件保持一致就可以 +EXPOSE 5678 + +# 容器启动时执行的命令 +CMD ["./wechatGPT-amd64-linux"] diff --git a/README.md b/README.md index c52ea24e..7015fda9 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,9 @@ make linux 打包后的可执行文件在 `src/bin` 目录下。 ### 线上部署 + +#### 1. 手动部署 + 部署方式跟 [快速本地部署](#快速本地部署) 一样,将打包好的可执行文件在线上服务器运行即可。 > **特别注意:** 线上发布请记得修改配置文档中的 AccessKey, 以免给你的应用造成风险!!! @@ -197,6 +200,14 @@ make linux ```shell ProxyURL = [] ``` + +#### 2. Docker 部署 + +- 安装必要的工具:node, go, docker; +- 编辑 web 目录下的 `.env.production` 改为自己需要的参数; +- 在 src 目录复制 `config.sample.toml` 并命名一个新的配置文件 `config.toml`,然后编辑它改为自己需要的参数; +- 执行 `Startup.sh` 脚本。 + ### 使用 Nginx 代理 ```nginx diff --git a/Startup.sh b/Startup.sh new file mode 100644 index 00000000..049d6d8a --- /dev/null +++ b/Startup.sh @@ -0,0 +1,27 @@ +# 前端 + +if ! command -v node > /dev/null; then + printf 'node is not installed.\n' + exit 1 +fi +cd web +npm install +npm run build +cd .. + +# 后端 +if ! command -v go > /dev/null; then + printf 'go is not installed.\n' + exit 1 +fi +cd src +go mod tidy +make linux +cd .. + +# Docker +if ! command -v docker > /dev/null; then + printf 'docker is not installed.\n' + exit 1 +fi +docker compose up -d \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..f5225bf0 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,13 @@ +services: + chatgptplus: + container_name: chatgptplus + build: ./ + restart: unless-stopped + volumes: + - ./src/config.toml:/usr/src/app/config.toml + ports: + - 5678:5678 + logging: + options: + max-size: "10m" + max-file: "3"