未验证 提交 a5a045f3 编辑于 作者: Azur Crystal's avatar Azur Crystal 提交者: GitHub
浏览文件

Add FAQ && Correct Markdown in Docker page (#162)

上级 dfb37e07
......@@ -54,7 +54,10 @@ Linux 用户可以使用 mirai 部署,具体请看[这里](./Linux-cqhttp-mira
源码运行需要使用 git 作为版本管理和更新工具,如果没有使用过 git 可以阅读:[git官网](https://git-scm.com/)[git教程](https://www.runoob.com/git/git-tutorial.html)
确保python版本至少为3.6
推荐使用Python版本为[Python3.7](https://www.python.org/downloads/release/python-377/)
**仍然可以**继续使用Linux预装的*Python3.6*运行Yobot源码。
如何在Linux上安装多版本Python,请自行询问搜索引擎。
请注意,[Python版本过高可能导致包不兼容](https://github.com/yuudi/yobot/issues/158#issuecomment-643633908)
下载源码 `git clone https://github.com/yuudi/yobot.git`
......
......@@ -50,7 +50,9 @@ yobot 三代基于酷Q机器人和 httpapi 插件实现
源码运行需要使用git作为版本管理和更新工具,如果没有使用过git可以阅读:[git官网](https://git-scm.com/)[git教程](https://www.runoob.com/git/git-tutorial.html)
确保python版本至少为3.6
推荐使用Python版本为[Python3.7](https://www.python.org/downloads/release/python-377/)
**极其不推荐**使用Windows商店自带Python,建议从官网下载可执行文件进行安装。
请注意,[Python版本过高可能导致包不兼容](https://github.com/yuudi/yobot/issues/158#issuecomment-643633908)
下载源码 `git clone https://github.com/yuudi/yobot.git`
......
......@@ -3,6 +3,14 @@
建议购买一台阿里云Ubuntu 18.04(linux) 云服务器来运行。
最低配置1核2GB。
::: Warning
本文只适用于在**Linux**下部署的情况。
**Windows系统下部署**,建议参考[Windows源码部署](./Windows-source.md)
不推荐在Windows系统下部署的原因,请参阅[文档末尾](#Windows部署Docker可能出现的问题)
:::
## 克隆项目
登录云服务器,如果您还没有安装git,请先输入如下指令安装git
```shell script
......@@ -25,68 +33,69 @@ sudo bash scripts/install-docker.sh
## 为docker创建管理用户(可选)
### root用户太长不看版
如果您执意**使用root用户**运行docker,请在yobot源码的根目录下执行
如果您执意**使用root用户**运行docker:
请在yobot源码的根目录下执行
```shell script
chown -R 1000:1000 .
```
以防止权限错误。
之后,您可以看**下一个大标题**了。
以防止权限错误。
之后,您可以看**下一个大标题**了。
### 创建低权限管理用户
为了避免可能存在的提权漏洞,危害到您的服务器安全和数据安全,非常不建议您直接使用root账户运行docker实例。
yobot目前的docker实例限制在UID=1000的用户下运行。
如果您直接使用root运行docker-compose的话,极有可能会产生权限错误。
如果您对linux系统比较陌生,***非常推荐***您按照以下的步骤进行操作。
以下步骤会帮您创建一个UID=1000,GID=1000,用户名为yobot的用户,用于管理yobot及docker的运行。
以下命令适用于Debian系(含Ubuntu)的绝大部分系统。
为了避免可能存在的提权漏洞,危害到您的服务器安全和数据安全,非常不建议您直接使用root账户运行docker实例。
yobot目前的docker实例限制在UID=1000的用户下运行。
如果您直接使用root运行docker-compose的话,极有可能会产生权限错误。
如果您对linux系统比较陌生,**非常推荐**您按照以下的步骤进行操作。
以下步骤会帮您创建一个UID=1000,GID=1000,用户名为yobot的用户,用于管理yobot及docker的运行。
请执行以下命令:
```shell script
groupadd -g 1000 yobot
useradd -u 1000 -g 1000 -m yobot
```
之后,请为您的账户设置一个密码:
之后,请为您的账户设置一个密码:
```shell script
passwd yobot
```
**(可选)**将yobot用户加入docker用户组内,无需使用sudo调用docker进行运行:
**(可选)**将yobot用户加入docker用户组内,无需使用sudo调用docker进行运行:
```shell script
usermod -aG docker yobot
```
然后切换至运行yobot的账户:
然后切换至运行yobot的账户:
```shell script
su - yobot
```
克隆一份yobot的源码:
克隆一份yobot的源码:
```shell script
git clone https://github.com/yuudi/yobot.git
```
或者使用国内镜像源 https://gitee.com/yobot/yobot.git
如果您按照上述步骤执行了,后续的源码均指刚刚从git仓库克隆下来的这份源码。
按照上述步骤执行完后,如果没有问题,接下来您可以继续看下一个大标题 **拷贝、修改项目配置** 了。
如果您按照上述步骤执行了,后续的源码均指刚刚从git仓库克隆下来的这份源码。
按照上述步骤执行完后,如果没有问题,接下来您可以继续看下一个大标题 **拷贝、修改项目配置** 了。
### UID=1000的用户被占用时的解决方法
如果您已经使用过linux系统一段时间,熟悉用户及用户组权限的设置,或者您已经在您的服务器上创建了UID=1000的用户,用户创建受到阻碍:
对于用户已经存在的情况:建议您**添加该用户至docker用户组**,切换到该用户,并使用该用户对docker进行管理。
对于用户已经存在但您~~不想用~~,执意**使用root用户**管理docker的情况:
目前的最佳解决办法是,将git仓库的权限转移至UID=1000的用户下。
在yobot的源码根目录下执行如下命令:
如果您已经使用过linux系统一段时间,熟悉用户及用户组权限的设置,或者您已经在您的服务器上创建了UID=1000的用户,用户创建受到阻碍:
对于用户已经存在的情况:建议您**添加该用户至docker用户组**,切换到该用户,并使用该用户对docker进行管理。
对于用户已经存在但您~~不想用~~,执意**使用root用户**管理docker的情况:
目前的最佳解决办法是,将git仓库的权限转移至UID=1000的用户下。
在yobot的源码根目录下执行如下命令:
```shell script
chown -R 1000:1000 .
```
之后您也可以看**下一个大标题**了。
之后您也可以看**下一个大标题**了。
#### 没有root也没有UID=1000用户时的解决方法
如果您没有通行root账户权限,只能使用非UID=1000账户运行docker的话:
dockerfile当中预留了编译时指定用户UID的编译参数:
```
如果您没有通行root账户权限,只能使用非UID=1000账户运行docker的话:
dockerfile当中预留了编译时指定用户UID的编译参数:
```dockerfile script
ARG PUID=1000
```
建议您参考docker-compose文件内的运行配置,[手动指定ARG进行构建](https://gitbook.docker-practice.com/image/dockerfile/arg)并运行,或者使用--user参数将本地用户映射到docker内用户(不推荐)。
由于cqhttp输出的配置文件同样属于UID=1000的用户,所以极其不推荐这种方法。
~~一般来说能遇到这种情况您大概也不需要这份教程~~
建议您参考docker-compose文件内的运行配置,[手动指定ARG进行构建](https://gitbook.docker-practice.com/image/dockerfile/arg)并运行,或者使用--user参数将本地用户映射到docker内用户(不推荐)。
由于cqhttp输出的配置文件同样属于UID=1000的用户,所以极其不推荐这种方法。
~~一般来说能遇到这种情况您大概也不需要这份教程~~
## 拷贝、修改项目配置
进入管理用户所持有项目的根目录下:
进入管理用户所持有项目的根目录下:
```shell script
cp .env.example .env
nano .env # 或者使用 vim 等其他编辑器
......@@ -114,8 +123,8 @@ sudo docker-compose restart
之后请您访问`http://您的服务器外网ip:9000`,输入您在刚刚`VNC_PWD`设置的密码即可登录。
您服务器的外网IP您可以在阿里云控制台看到。
如果您不能访问这个链接,请检查服务器是否成功启动、安全组设置是否放通全部端口。
之后请登录您的QQ,如遇"下载Chrome"字样提示,请取消重新登录。
如果您在NOVNC页面遇到了问题,或者QQ无法登录的话,请在[CQHTTP-issue](https://github.com/richardchien/coolq-http-api/issues)中进行提问。
之后请登录您的QQ,如遇"下载Chrome"字样提示,请取消重新登录。
如果您在NOVNC页面遇到了问题,或者QQ无法登录的话,请在[CQHTTP-issue](https://github.com/richardchien/coolq-http-api/issues)中进行提问。
## 验证安装
......@@ -128,3 +137,10 @@ sudo docker-compose restart
## 常见问题
[FAQ](../usage/faq.md)
## Windows部署Docker可能出现的问题
由于本项目的Docker镜像基于Linux系统,默认文件结尾符为**LF**
而 Windows 系统的默认文件结尾符为**CRLF**
所以**极 度 不 推 荐**您在 Windows 系统上使用我们提供的**docker-compose.yml**进行部署,因为我们默认会将整个目录挂载入Docker以供数据持久化保存。
错误的文件结尾符会导致整个目录被视为更改状态,无法应用自动更新。
\ No newline at end of file
......@@ -78,18 +78,24 @@ yobot 自动添加第一个登录的用户为最高权限,如果需要手动
Nginx: `proxy_set_header X-Real-IP $remote_addr;`
Apache: `RemoteIPHeader X-Real-IP`
### 使用docker-compose运行后提示 " [Errno 13] Permission denied: 'yobotg.sh' "
### 使用docker-compose运行后提示 "[Errno 13] Permission denied: 'yobotg.sh'"
请参考[Docker部署](../install/docker.md)
此类情况均是由 root 账户直接运行 docker 实例造成的。
在源码根目录中执行:
```shell
请参考[Docker部署](../install/docker.md)
此类情况均是由root账户直接运行docker实例造成的。
在源码根目录中执行:
```shell script
chown -R 1000:1000 .
```
以解决该问题。
### 运行时提示“存在未提交的修改”
以解决该问题。
此类情况大部分来自于**直接修改Yobot源码**的行为。
按照教程复制更改的配置文件(.env,yobot_data)不属于源码。
具体有哪些文件不属于源码,请参照根目录下的 .gitignore 文件。
如果您主动修改了源码以执行部分额外功能,请参照[如何在本地提交Commit](https://github.com/yuudi/yobot/issues/136#issuecomment-635958636)以取消该提示。
### 这里没有我的问题
可以在QQ群({{ [770947581,1044314369,1067699252,774394459][Math.floor(Math.random()*4)] }})或[github issue](https://github.com/yuudi/yobot/issues)提问,提问前可以阅读[正确的提问姿势](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways/blob/master/README.md)
可以在QQ群({{ [770947581,1044314369,1067699252,774394459][Math.floor(Math.random()*4)] }})或[这里](https://github.com/yuudi/yobot/issues)提问,提问前**建议阅读**[正确的提问姿势](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways/blob/master/README.md)[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md)
Supports Markdown
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册