diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b0dfd33c --- /dev/null +++ b/Dockerfile @@ -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 diff --git a/Image Build & YAML Setup.md b/Image Build & YAML Setup.md new file mode 100644 index 00000000..e21d08dd --- /dev/null +++ b/Image Build & YAML Setup.md @@ -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 diff --git a/langchain_sample.yaml b/langchain_sample.yaml new file mode 100644 index 00000000..7d543cd5 --- /dev/null +++ b/langchain_sample.yaml @@ -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 \ No newline at end of file