Skip to content

Latest commit

 

History

History
155 lines (105 loc) · 4.96 KB

File metadata and controls

155 lines (105 loc) · 4.96 KB

FEAPLAT常见问题

常用命令

  1. 运行:docker-compose up -d

  2. 停止:docker-compose stop

  3. 查看后端日志:docker logs -f feapder_backend

  4. 查看爬虫日志:

    1. 查看爬虫实例:docker service ps task_任务id
    2. 查看爬虫实例日志:docker service logs -n 行数 -f ID

    举例:

    docker service ps task_9
    

    docker service logs -n 20 -f u6qhyu2dauiu
    
  5. 查看正在运行的容器:docker ps

  6. 进入容器:docker exec -it 容器ID bash

修改端口

默认端口如下:

# 前端端口
FRONT_PORT=6385
# 后端端口
BACKEND_PORT=8000
# MYSQL端口
MYSQL_PORT=33306
# REDIS 端口
REDIS_PORT=6379
# 监控系统端口配置
INFLUXDB_PORT_TCP=8086
INFLUXDB_PORT_UDP=8089

通过 vim .env 敲击i 进入编辑模式,修改完按 esc退出编辑,敲击 :wq 保存

启动失败

以下列的是几种可能原因,可按照这个顺序排查,但不是所有步骤都需要走一遍

  1. 查看后端日志,观察报错

    1. 若是docker版本问题,参考部署一节安装最新版本,
    2. 若是报 This node is not a swarm manager,则是部署环境没准备好,执行docker swarm init,可参考参考部署一节
  2. 查看worker状态:

    docker service ps task_任务id --no-trunc
    

    看看error信息

  3. 查看镜像docker images,若不存在爬虫镜像registry.cn-hangzhou.aliyuncs.com/feapderd/feapder,可能自动拉取失败了,可手动拉取,拉取命令:docker pull registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:版本号,版本号在.env里查看

  4. 重启docker服务,Centos对应的命令为:service docker restart,其他自行查资料

依赖包安装失败,可手动安装包

  1. 在项目配置处将 requirements.txt 一栏置空,使其不自动安装依赖

  2. 添加一个常驻任务:执行命令可填写 while true; do echo hello world; sleep 1; done

  3. 查看容器iddocker ps(若您有多台worker服务器,该任务会被随机分配到一台机器上,您需要在对应的机器上查看)

  4. 进入容器 docker exec -it 容器ID bash

  5. 接来下就和在centos服务器上操作一样了,你可以pip安装依赖

授权问题

此问题为服务器时间和时区问题, 可以在服务器上输入 date ,命令检查时间及时区是否正确

正常应该为 Mon Feb 21 17:03:11 CST 2022 注意是 CST 不是 UTC

修改时区及矫正时间命令

# 改时区
rm -f /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 校对时间 方式1
clock --hctosys
# 校对时间 方式2
ntpdate 0.asia.pool.ntp.org

我搭建了个集群,如何让主节点不跑任务

在主节点上执行下面命令,将其设置成drain状态即可

docker node update --availability drain 节点id

Network 问题

attaching to network failed, make sure your network options are correct and check manager logs: context deadline exceeded

  1. 确定当前节点是不是Drain节点:docker node ls

    是则继续往下看,不是则在评论区留言

  2. 修复

    docker node update --availability active 节点id
    docker node update --availability drain 节点id
    

原因是Drain节点,不能为其分配网络资源,需要先改成active,然后启动,之后在改回drain

若不是以上情况,可能是network内的可分配的ip满了(老版本feaplat会有这个问题),那么可继续往下看

  1. 先检查feaplat目录下的docker-compost.yaml,翻到最后,看network相关配置是否为如下。若不是,则改成下面这样的。若下面指定的11 ip段和主机有冲突,可以写12、13等

    networks:
      default:
        name: feaplat
        driver: overlay
        attachable: true
        ipam:
          config:
            - subnet: 11.0.0.0/8
              gateway: 11.0.0.1
    

    完整配置见:https://github.com/Boris-code/feaplat/blob/develop/docker-compose.yaml

  2. 改完后,需要删除之前的network,使其重新创建,命令如下:

    docker service ls -q | xargs docker service rm # 注意 这个会停止掉所有任务。
    docker network rm feaplat # 删除网络
    docker compose rm # 删除之前feaplat运行环境
    docker compose up -d # 启动