Centos7.9中使用Docker安裝雲崽機器人

2023-03-27 06:01:03

Centos7.9中使用Docker安裝雲崽機器人

前面我寫了如何普通版搭建雲崽教學,今天我們來使用docker來安裝,感謝docker映象源作者:如青桑(QQ: 1666633887)

普通版教學:https://blog.hanhanz.top/?p=309

映象源地址:https://hub.docker.com/r/moeta233/yunzai-chatgpt

Ubuntudocker安裝雲崽教學:https://err0r.top/article/Yunzai-chatgptPlugin/

使用docker的前提是你得有docker,怎麼看你是否已經安裝了呢,在終端輸入docker version ,如果提示未找到命令,那就是沒安裝,如果有輸出內容,那就太棒啦,你可以跳過安裝docker部分啦~請前往下方安裝雲崽部分

前提條件

Docker要求系統為64位元、Linux系統核心版本為3.8以上

cat /etc/redhat-release 

uname -r

參考我的系統是Centos7.9,核心版本為3.10,是64位元的。

安裝Docker

安裝軟體包

yum install -y yum-utils device-mapper-persistent-data lvm2

設定yum源

#二選一,也可以不選
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央倉庫)
 
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里倉庫)

docker的版本選擇和安裝

  1. 檢視版本

    yum list docker-ce --showduplicates | sort -r
    

    這裡我選擇安裝第一個23.0.1的版本

  2. 選擇好版本進行安裝

    yum -y install docker-ce-23.0.1
    

    不報錯就說明安裝好了

  3. 啟動docker

    systemctl start docker
    
  4. 檢查已安裝的docker

    docker version
    

  5. 設定開機自啟

    systemctl enable docker
    

安裝雲崽

上面我們安裝好了docker,現在可以安裝雲崽了

映象介紹

一個開箱即用的雲崽Bot,整合鍋巴外掛和ChatGPT外掛。

已設定好所有依賴和ffmpeg。預設使用者:root,密碼:password

請務必在連線後使用 passwd root,更改root賬戶的密碼。

使用方法

請直接執行:

docker run -it -p {SSH埠}:22 -p {鍋巴埠}:50831 --name {容器名稱} moeta233/yunzai-chatgpt

例如:

docker run -it -p 22:22 -p 50831:50831 --name yunzai moeta233/yunzai-chatgpt

國內映象

映象較大,建議使用國內映象registry.cn-beijing.aliyuncs.com/moeta/yunzai-chatgpt

docker run -it -p 22:22 -p 50831:50831  --name yunzai  registry.cn-beijing.aliyuncs.com/moeta/yunzai-chatgpt

執行之後先是會拉取映象,一切正常的話,會提示你設定QQ號還有密碼以及登入協定主人QQ等設定項,登入成功後會出現下面介面,這樣就算成功了,在QQ聊天介面給機器人傳送#重啟就可以後臺執行了,設定ChatGPT外掛的話,私聊機器人#鍋巴登入去鍋巴里面進行設定,當然如果你是大神或者你就要自己設定,請參考我的另一篇教學:https://blog.hanhanz.top/?p=309

後臺執行的方法

  1. 第一種

    傳送重啟後,直接Ctrl + P + Q就退出docker了,後臺也會繼續執行

  2. 第二種

    這種方法適用於你的QQ號登入沒有出現問題的時候

    傳送重啟後,會出現下面介面,然後輸入exit退出docker,然後傳送docker start yunzai命令執行剛剛建立的docker容器,如果要檢視紀錄檔的話,輸入docker attach yunzai進入檢視(只能檢視attach以後的紀錄檔,我本人docker小白,不太懂docker,可能也有其他方法,可以指正)

教學到這結束了。

其他問題

當雲崽退出後會進入bash命令列,因此可能不支援意外退出自動重啟,但容器開啟會自動執行。您可以在 /app/yunzai.sh 自定義啟動指令碼。

如果您初次設定出現問題,可以刪除容器重建,或重新啟動容器並立刻附加,以容器名yunzai為例:

  • Linux:
docker start yunzai && docker attach yunzai
  • Windows Powershell:
docker start yunzai; docker attach yunzai

Dockerfile

FROM node:bullseye
VOLUME ["/app"]
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && mkdir -p /app
WORKDIR /app
RUN apt-get update && apt-get install -y curl wget vim git cmake redis-server dialog openssh-server ssh vim
RUN echo "root:password" | chpasswd  \
    && sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
    && sed -i 's/^#\(PermitRootLogin.*\)/\1/' /etc/ssh/sshd_config \
    && /etc/init.d/ssh start
EXPOSE 22
RUN npm install pnpm --registry=https://registry.npm.taobao.org -g
RUN git clone --depth=1 -b main https://gitee.com/yoimiya-kokomi/Yunzai-Bot.git
WORKDIR /app/Yunzai-Bot
RUN pnpm install -P
RUN git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/
RUN pnpm install --filter=guoba-plugin
EXPOSE 50831
RUN git clone --depth=1 https://gitee.com/ikechan/chatgpt-plugin.git ./plugins/chatgpt-plugin/
WORKDIR /app/Yunzai-Bot/plugins/chatgpt-plugin
RUN pnpm install
RUN apt-get install -yq gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
    libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
    libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 \
    libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libgbm-dev libnss3 \
    ca-certificates fonts-liberation lsb-release xdg-utils wget ttf-wqy-zenhei
RUN fc-cache -fv
WORKDIR /usr/share/
ADD https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz /usr/share/
RUN tar -xf /usr/share/ffmpeg-release-amd64-static.tar.xz \
    && mv /usr/share/ffmpeg-6.0-amd64-static /usr/share/ffmpeg \
    && rm -rf /usr/share/ffmpeg-release-amd64-static.tar.xz \
    && chmod 755 /usr/share/ffmpeg/ffmpeg \
    && chmod 755 /usr/share/ffmpeg/ffprobe \
    && ln -s /usr/share/ffmpeg/ffmpeg /usr/bin/ffmpeg \
    && ln -s /usr/share/ffmpeg/ffprobe /usr/bin/ffprobe \
    && chmod 755 /usr/bin/ffmpeg \
    && chmod 755 /usr/bin/ffprobe
WORKDIR /app/Yunzai-Bot
COPY ./yunzai.sh /app/yunzai.sh
ENTRYPOINT [ "/app/yunzai.sh" ]

啟動指令碼 yunzai.sh

#!/bin/bash
service ssh start
echo -e "\033[0;96m登入後您可以在QQ傳送 #重啟 命令使Bot轉入後臺,進入終端。\033[0m"
cd "/app/Yunzai-Bot" || exit
node app
bash