提交 2bf2e662 编辑于 作者: AzurCrystal's avatar AzurCrystal
浏览文件

Add docker description on Wiki

上级 7717d958
......@@ -6,12 +6,8 @@ services:
- "9222:9222"
env_file: .env
restart: on-failure
command: >
bash -c "
python3 main.py 2>&1 >/dev/null && sh yobotg.sh
"
volumes:
- .:/code
- .:/home/yobot/yobot
networks:
- bot_net
......
......@@ -36,7 +36,7 @@ yobot搭建难度约等于搭建网站的难度,请量力而行
## Linux 服务器:Docker 部署
使用 Docker 一键部署(测试中)
使用 Docker 一键部署
[详细说明](./docker.md)
......
......@@ -4,7 +4,7 @@
最低配置1核2GB。
## 克隆项目
登录云服务器,如果您还有安装git,请先输入如下指令安装git
登录云服务器,如果您还有安装git,请先输入如下指令安装git
```shell script
sudo apt update
sudo apt install -y git
......@@ -13,6 +13,7 @@ sudo apt install -y git
```shell script
git clone https://github.com/yuudi/yobot.git
```
或者使用国内镜像源 https://gitee.com/yobot/yobot.git
## 安装docker和docker-compose
如果您没有安装过docker和docker-compose(也就是新开的实例),建议运行我们的一键脚本。
......@@ -22,7 +23,70 @@ cd yobot
sudo bash scripts/install-docker.sh
```
## 为docker创建管理用户(可选)
### root用户太长不看版
如果您执意**使用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)的绝大部分系统。
```shell script
groupadd -g 1000 yobot
useradd -u 1000 -g 1000 -m yobot
```
之后,请为您的账户设置一个密码:
```shell script
passwd yobot
```
**(可选)**将yobot用户加入docker用户组内,无需使用sudo调用docker进行运行:
```shell script
usermod -aG docker yobot
```
然后切换至运行yobot的账户:
```shell script
su - yobot
```
克隆一份yobot的源码:
```shell script
git clone https://github.com/yuudi/yobot.git
```
或者使用国内镜像源 https://gitee.com/yobot/yobot.git
如果您按照上述步骤执行了,后续的源码均指刚刚从git仓库克隆下来的这份源码。
按照上述步骤执行完后,如果没有问题,接下来您可以继续看下一个大标题 **拷贝、修改项目配置** 了。
### UID=1000的用户被占用时的解决方法
如果您已经使用过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的编译参数:
```
ARG PUID=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 等其他编辑器
......@@ -50,7 +114,8 @@ sudo docker-compose restart
之后请您访问`http://您的服务器外网ip:9000`,输入您在刚刚`VNC_PWD`设置的密码即可登录。
您服务器的外网IP您可以在阿里云控制台看到。
如果您不能访问这个链接,请检查服务器是否成功启动、安全组设置是否放通全部端口。
之后请登录您的QQ,如遇"下载Chrome"字样提示,请取消从重新登录。
之后请登录您的QQ,如遇"下载Chrome"字样提示,请取消重新登录。
如果您在NOVNC页面遇到了问题,或者QQ无法登录的话,请在[CQHTTP-issue](https://github.com/richardchien/coolq-http-api/issues)中进行提问。
## 验证安装
......
......@@ -85,6 +85,16 @@ yobot 自动添加第一个登录的用户为最高权限,如果需要手动
Nginx: `proxy_set_header X-Real-IP $remote_addr;`
Apache: `RemoteIPHeader X-Real-IP`
### 使用docker-compose运行后提示 " [Errno 13] Permission denied: 'yobotg.sh' "
请参考[Docker部署](../install/docker.md)
此类情况均是由root账户直接运行docker实例造成的。
在源码根目录中执行:
```shell script
chown -R 1000:1000 .
```
以解决该问题。
### 这里没有我的问题
可以在[这里](https://github.com/yuudi/yobot/issues)提问,提问前可以阅读[正确的提问姿势](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways/blob/master/README.md)
......@@ -18,6 +18,10 @@
由于不同的服务器提供商所需的步骤不同,所以具体方法请通过搜索引擎搜索:【你的提供商+你的操作系统+如何开放端口】
由于需要和yobot插件版兼容,默认路由设置为/yobot,直接访问根目录会产生405错误。
如果您没有修改路径,请通过 http://您的公网IP:yobot运行的端口/yobot/ 进行访问。
e.g. http://10.10.10.10:9222/yobot/
::: warning
如果使用这种方法,**必须**为 httpapi 和 yobot 设定 access_token 防止入侵
......
Supports Markdown
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册