Docker镜像制作与K8S YAML部署操作说明 (#2892)

This commit is contained in:
thinklover 2024-03-06 08:29:52 +08:00 committed by GitHub
parent 8146279bbe
commit 808ca227c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 139 additions and 0 deletions

19
Dockerfile Normal file
View File

@ -0,0 +1,19 @@
FROM python:3.11
RUN apt-get update
RUN apt-get install -y libgl1-mesa-glx
RUN mkdir /Langchain-Chatchat
COPY requirements.txt /Langchain-Chatchat
COPY requirements_api.txt /Langchain-Chatchat
COPY requirements_webui.txt /Langchain-Chatchat
WORKDIR /Langchain-Chatchat
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN pip install -r requirements_api.txt
RUN pip install -r requirements_webui.txt
EXPOSE 8501
EXPOSE 7861
EXPOSE 20000

View File

@ -0,0 +1,29 @@
# 创建代码根目录
mkdir /home/langchain
## 切换代码根目录
cd /home/langchain
## 拉取仓库代码
git clone https://github.com/chatchat-space/Langchain-Chatchat.git .
## 切换Configs文件夹复制所有的配置档并去除文档后缀.example
/home/langchain/configs/
## 配置key
/home/langchain/configs/model_config.py
## 切换代码根目录
cd /home/langchain
## 制作镜像(自行修改镜像名称与版本号)
docker build -t {image_name}:{image_tag} .
## 修改YAML里的镜像名称与版本号
langchain_sample.yaml
## 创建K8S资源
kubectl apply -f langchain_sample.yaml
## 删除K8S资源
kubectl delete -f langchain_sample.yaml

91
langchain_sample.yaml Normal file
View File

@ -0,0 +1,91 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: langchain-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
local:
path: /home/langchain #填入代码所在的目录
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- instance-1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: langchain-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: standard
resources:
requests:
storage: 10Gi
volumeName: langchain-pv
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: langchain
spec:
replicas: 1
selector:
matchLabels:
app: langchain
template:
metadata:
labels:
app: langchain
spec:
securityContext:
fsGroup: 101
containers:
- name: langchain
image:{image_name}:{image_tag} #填入镜像名称与版本号
command: ["python"]
args: ["startup.py","-a"] #启动命令
ports:
- containerPort: 8501
- containerPort: 7861
- containerPort: 20000
volumeMounts:
- name: langchain-vol
mountPath: /Langchain-Chatchat
nodeSelector:
kubernetes.io/hostname: instance-1
volumes:
- name: langchain-vol
persistentVolumeClaim:
claimName: langchain-pvc
---
apiVersion: v1
kind: Service
metadata:
name: langchain-service
spec:
selector:
app: langchain
type: NodePort
ports:
- name: webui
port: 8501
targetPort: 8501
nodePort: 8501
- name: api
port: 7861
targetPort: 7861
nodePort: 7861
- name: fastchat
port: 20000
targetPort: 20000
nodePort: 20000