Azure Chatgpt demo部署——本地CentOS Docker

参见上一篇

http://t.csdnimg.cn/JcyfM

由于本地部署环境,与之前系统、网络、配置等环境不同,可能会遇见一些新的问题。

取2023年8月27日代码

复制代码
 git checkout -b a02796b063381c10ca9ca8189590b289a4d09129

由于本地情况的网络等环境不太一样,可能需要修改 openai等版本号

复制代码
openai==0.27.0

当前Dockerfile内容如下。本地pip 用了-i 后,flask反而下载失败

复制代码
RUN echo -e http://pypi.tuna.tsinghua.edu.cn/simple/ > /etc/apk/repositories
#RUN echo -e http://pypi.douban.com/simple/ > /etc/apk/repositories

#FROM node:20-alpine AS frontend
FROM node:16-alpine3.15 AS frontend
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app

WORKDIR /home/node/app
COPY ./frontend/package*.json ./
USER node
RUN npm ci
COPY --chown=node:node ./frontend/ ./frontend
COPY --chown=node:node ./static/ ./static
WORKDIR /home/node/app/frontend
RUN npm run build

FROM python:3.11-alpine
RUN apk add --no-cache --virtual .build-deps \
    build-base \
    libffi-dev \
    openssl-dev \
    curl \
    && apk add --no-cache \
    libpq

COPY requirements.txt /usr/src/app/
RUN python3 -m pip install --user --upgrade pip
#RUN pip3 install flask==1.1.1 -i http://mirrors.aliyun.com/pypi/simple/
#RUN pip3 install flask==1.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
RUN pip3 --default-timeout=100 install --no-cache-dir -r /usr/src/app/requirements.txt \
    && rm -rf /root/.cache

COPY . /usr/src/app/
COPY --from=frontend /home/node/app/static  /usr/src/app/static/
WORKDIR /usr/src/app
EXPOSE 80

CMD ["gunicorn"  , "-b", "0.0.0.0:80", "app:app"]

开始编译docker,发现会报错

复制代码
 => ERROR [frontend 9/9] RUN npm run build                                                                                                                                                                                       11.2s
------
 > [frontend 9/9] RUN npm run build:
0.936
0.936 > frontend@0.0.0 build
0.936 > tsc && vite build
0.936
11.01 tsconfig.json(21,18): error TS6053: File '/home/node/app/frontend/tsconfig.node.json' not found.
------
Dockerfile:17
--------------------
  15 |     COPY --chown=node:node ./static/ ./static
  16 |     WORKDIR /home/node/app/frontend
  17 | >>> RUN npm run build
  18 |
  19 |     FROM python:3.11-alpine
--------------------
ERROR: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 2

这是因为 frontend/tsconfig.node.json 文件并不存在。可以去 tsconfig.json文件中注释掉或删掉引用了tsconfig.node.json文件的最后一行。(注意备份文件)

另外,还会报前端图标相关的问题

复制代码
 => ERROR [frontend 9/9] RUN npm run build                                                                                                                                                                                       14.9s
------
 > [frontend 9/9] RUN npm run build:
0.902
0.902 > frontend@0.0.0 build
0.902 > tsc && vite build
0.902
13.56 vite v4.1.5 building for production...
13.63 transforming...
14.82 ✓ 29 modules transformed.
14.82 Could not resolve "../../assets/Azure.svg" from "src/pages/layout/Layout.tsx"
14.82 file: /home/node/app/frontend/src/pages/layout/Layout.tsx
14.83 error during build:
14.83 RollupError: Could not resolve "../../assets/Azure.svg" from "src/pages/layout/Layout.tsx"
14.83     at error (file:///home/node/app/node_modules/rollup/dist/es/shared/rollup.js:2091:30)
14.83     at ModuleLoader.handleInvalidResolvedId (file:///home/node/app/node_modules/rollup/dist/es/shared/rollup.js:23325:24)
14.83     at file:///home/node/app/node_modules/rollup/dist/es/shared/rollup.js:23287:26
------
Dockerfile:17
--------------------
  15 |     COPY --chown=node:node ./static/ ./static
  16 |     WORKDIR /home/node/app/frontend
  17 | >>> RUN npm run build
  18 |
  19 |     FROM python:3.11-alpine
--------------------
ERROR: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1

在frontend/src/pages/layout/Layout.tsx文件注释或删除掉引用svg图标的语句,../../assets/Azure.svg;除此外,在frontend/src/pages/chat/Chat.tsx,src/components/QuestionInput/QuestionInput.tsx文件也需要注释或删除掉引用assets/.svg图标的语句,不知道为什么,这里不支持引用

注意:有时候网页打开后,可以看到需要微软Authorization 或者让等待10分钟,可以在 frontend/src/pages/chat/Chat.tsx 文件中看到这里。

复制代码
 const [showAuthMessage, setShowAuthMessage] = useState<boolean>(true);

然后在下面的<stack>相关代码中注释掉 showAuthMessage 这一部分。

相关推荐
Elastic 中国社区官方博客13 分钟前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
10mAh29 分钟前
【Linux】CPU 100% 怎么排查?——top、pidstat、jstack 到线程定位实战
linux·运维·服务器
LRL_37 分钟前
深入浅出 Kubernetes 控制器:Deployment 与 StatefulSet 核心区别全景图
云原生·容器·kubernetes
!chen1 小时前
客户环境 Nginx 配置流式报表与超时排查
运维·nginx
起名真的太难了1 小时前
Docker 项目部署
docker·容器·eureka
狼与自由2 小时前
docker 安装milvus
docker·milvus
KIZIFLOW北泽五金2 小时前
液压系统压力损失怎么降?成因分析与减损实操方案
运维·自动化·新媒体运营·产品运营·流量运营·用户运营·内容运营
介拙2 小时前
Zabbix 7.0 从装到告警触发,我踩了这些坑
运维
爱吃提升2 小时前
VMware虚拟机迁移系统磁盘完整教程(VMware Workstation17)
linux·运维·服务器
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 制作 Docker 镜像 阅读笔记 43
spring boot·笔记·docker