Merge pull request #6 from EyreFree/master

feat: docker supported
This commit is contained in:
RockYang 2023-06-05 08:32:34 +08:00 committed by GitHub
commit b4569d7fe2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 62 additions and 0 deletions

11
Dockerfile Normal file
View File

@ -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"]

View File

@ -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

27
Startup.sh Normal file
View File

@ -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

13
docker-compose.yaml Normal file
View File

@ -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"