Skip to content

Commit

Permalink
fix(docker): correct language switch path in Docker image
Browse files Browse the repository at this point in the history
  • Loading branch information
rockbenben committed Sep 14, 2024
1 parent 635490f commit c5269c9
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 26 deletions.
29 changes: 16 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,36 +1,39 @@
# 使用 nodejs 作为基础镜像
FROM node:lts-alpine
# 第一阶段: 构建静态网站
FROM node:20-alpine AS builder

# 设置工作目录
WORKDIR /app

# 配置环境 yarn
# RUN npm install -g yarn

# 复制项目中的 package.json 和 yarn.lock 到工作目录中
COPY package.json yarn.lock ./

# 安装依赖包
RUN yarn install
# 安装依赖包(仅安装生产环境依赖)
RUN yarn install --frozen-lockfile --production --network-timeout 100000

# 复制项目源代码到工作目录
COPY . .

# 构建静态站点
RUN yarn build

# 使用NGINX作为Web服务器
# 第二阶段: 使用 Nginx 作为静态服务器
FROM nginx:stable-alpine

# 将Docusaurus静态站点文件复制到NGINX默认目录
COPY --from=0 /app/build /usr/share/nginx/html
# 删除默认的 Nginx 配置文件
RUN rm /etc/nginx/conf.d/default.conf

# 复制自定义 Nginx 配置文件
COPY nginx.conf /etc/nginx/conf.d

# 将第一阶段构建的 Docusaurus 静态站点文件复制到 Nginx 目录
COPY --from=builder /app/build /usr/share/nginx/html

# 暴露端口 80
EXPOSE 80
# 暴露端口 3000
EXPOSE 3000

# 启动NGINX
CMD ["nginx", "-g", "daemon off;"]

# 容器构建&运行命令
# docker build -t chatgpt-shortcut .
# docker run -d -p 80:80 --name chatgpt-shortcut chatgpt-shortcut
# docker run -d -p 3000:3000 --name chatgpt-shortcut chatgpt-shortcut
9 changes: 9 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: "3.8"

services:
docsify:
container_name: chatgpt-shortcut
image: ghcr.io/rockbenben/chatgpt-shortcut:latest
ports:
- "3000:3000"
restart: unless-stopped
61 changes: 48 additions & 13 deletions docs/deploy.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,27 @@
# 项目部署

## Deploy With Vercel
AI Short 是一个开源项目,你可以自由修改网站的名称和说明。

- 要更改页面名称,请编辑 `docusaurus.config.js` 文件。
- 要修改使用说明,请前往 `docs` 目录。
- 若要修改提示词,你可以在 `src/data/prompt.json` 中找到它们。如果你只需要修改单个语言,比如中文,可以直接编辑 `src/data/prompt_zh.json`
- 目前,用户后端已连接到一个共用后台系统。如果需要,你可以自行建立后端,相关接口位于 `src/api.js` 文件中。

`CodeUpdateHandler.py` 是用于批量处理多语言部署的脚本。完成修改后,执行 `python CodeUpdateHandler.py`,它将根据规则将 `prompt.json` 拆分为多种语言,并同步各语言的主页面代码以及精选提示词的独立页面代码。

## 部署说明

### Deploy With Vercel

点击下方按钮,一键将 ChatGPT-Shortcut 部署到 Vercel 平台:

[![Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Frockbenben%2FChatGPT-Shortcut%2Ftree%2Fmain)

## Installation
通过 Vercel,你可以快速将项目托管,并且可以自动处理构建和部署,适合没有复杂服务器配置需求的用户。

### 本地部署

确保你已安装 [Node.js](https://nodejs.org/)

```shell
# Installation
Expand All @@ -30,6 +47,35 @@ yarn build --locale pt
yarn build --locale hi
yarn build --locale ar
yarn build --locale bn

# Deploy for multiple languages
yarn build --locale zh && yarn build --locale en
```

### Docker 部署

如果你熟悉 Docker,可以通过以下命令快速部署:

```bash
# ghcr.io
docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest

# docker hub
docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest
```

或者,你也可以使用 `docker-compose`

```yml
version: "3.8"

services:
docsify:
container_name: chatgpt-shortcut
image: ghcr.io/rockbenben/chatgpt-shortcut:latest
ports:
- "3000:3000"
restart: unless-stopped
```
## 开启同步更新
Expand All @@ -55,14 +101,3 @@ yarn build --locale bn
如果想手动立即更新,可以查看 [GitHub 的文档](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork),了解如何让 fork 的项目与上游代码同步。
你可以给本项目点赞(star)/关注(watch),或者关注作者,以便及时获得新功能更新通知。

## 项目修改说明

AI Short 是一个开源项目,你可以自由修改网站的名称和说明。

- 要更改页面名称,请编辑 `docusaurus.config.js` 文件。
- 要修改使用说明,请前往 `docs` 目录。
- 若要修改提示词,你可以在 `src/data/prompt.json` 中找到它们。如果你只需要修改单个语言,比如中文,可以直接编辑 `src/data/prompt_zh.json`
- 目前,用户后端已连接到一个共用后台系统。如果需要,你可以自行建立后端,相关接口位于 `src/api.js` 文件中。

`CodeUpdateHandler.py` 是用于批量处理多语言部署的脚本。完成修改后,执行 `python CodeUpdateHandler.py`,它将根据规则将 `prompt.json` 拆分为多种语言,并同步各语言的主页面代码以及精选提示词的独立页面代码。
15 changes: 15 additions & 0 deletions nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
server {
listen 3000;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
}

0 comments on commit c5269c9

Please sign in to comment.