Twtcer / tech-study-docker

学习强国Docker 40分/天 A flexible and light docker image for xuexiqiangguo based on Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tech-study-docker

描述 Description

  • 基于 Docker + Node.js 的自动化学习强国工具

建议 Suggestion

优点 Advantages

  • 易于部署,灵活可用的学习强国 PC 网页版 任务解决方案

  • 基于 Node.js 的控制浏览器的行为,安全高效

  • 基于 PushPlus 推送功能,通过微信远程接收学习情况和服务运行情况

交流群 Telegram Group

注:介于国内敏感,暂时不提供其他交流互动方式。

部署与运行 Deploy and Run

  1. 安装docker 以及 docker-compose

    Windows (查看官方教程

    分为基于 WSL 2 的 Windows Linux 子系统 以及 基于 Hyper-V 的 Windows 容器,具体请参考官方教程

    CentOS (查看官方教程
    1. 卸载老版本 dockerdocker-engine

      sudo yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engine
    2. 设置仓库

      sudo yum install -y yum-utils
      sudo yum-config-manager \
       --add-repo \
       https://download.docker.com/linux/centos/docker-ce.repo
    3. 安装 docker 引擎

      sudo yum install -y docker-ce \
      docker-ce-cli \
      containerd.io \
      docker-buildx-plugin \
      docker-compose-plugin
    4. 运行 docker

      sudo systemctl start docker
    Ubuntu (查看官方教程
    1. 卸载老版本 dockerdocker-engine

      sudo apt-get remove docker docker-engine docker.io containerd runc
    2. 设置仓库

      1. 更新 apt 程序包索引并安装依赖

        sudo apt-get update
        sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
      2. 添加 Docker 官方 GPG 密钥

        sudo mkdir -m 0755 -p /etc/apt/keyrings
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      3. 设置仓库

        echo \
        "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
        $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    3. 安装 docker 引擎

      sudo apt-get update

      运行 apt-get 更新时收到 GPG 错误?

      sudo chmod a+r /etc/apt/keyrings/docker.gpg
       sudo apt-get update
      sudo apt-get install docker-ce \
      docker-ce-cli \
      containerd.io \
      docker-buildx-plugin \
      docker-compose-plugin
  2. 拉取 docker 镜像,创建 tech-study-docker 容器

    1. 拉取 docker 镜像

      docker pull xuzhengze/tech-study-docker
    2. 创建 tech-study-docker 容器

      docker compose up -d
  3. 启用 PushPlus 推送

    • PushPlus 官网 上,注册登录账号。若有其他用户,可添加为好友,发送好友消息

    • 更改 Push 配置config/push.ts),设置管理员token管理员能接收到服务推送,用户只能收到自己的学习推送)

        {
         // 其他配置...
          /**
           * @description 管理员的 token
           */
          token: '管理员 token',
        }

      管理员token

  4. 查看更改 Schedule 配置config/schedule.ts),单或多个定时任务配置

    [
      {
        /**
         * @description 用户昵称
         */
        nick: '用户昵称',
        /**
         * @description 管理员或者好友 token
         */
        token: '用户 token',
        /**
         * @description cron 表达式
         * @example '0 0 12 * * ?' 表示12点, ['0 0 12 * * ?', '0 0 13 * * ?'] 表示12和13点
         */
        cron: '0 0 12 * * ?',
        /**
         * @description 学习项目配置
         * @example  [文章选读, 视听学习, 每日答题, 专项练习]
         */
        taskConfig: [true, true, true, true],
        /**
         * @description 专项练习 答题失败(由于答完结算,仅包含答题异常或无答案)退出不提交
         * @example true 退出答题不提交 false 继续答题
         */
        paperExitAfterWrong: false,
      },
    ];

    管理员token

    好友消息token

      # 关于`node-schedule`定时任务的`cron`表达式
    
      *    *    *    *    *    *
      ┬    ┬    ┬    ┬    ┬    ┬
      │    │    │    │    │    │
      │    │    │    │    │    └ 星期 (0 - 7) (0 或 7 是星期天)
      │    │    │    │    └───── 月 (1 - 12)
      │    │    │    └────────── 日 (1 - 31)
      │    │    └─────────────── 时 (0 - 23)
      │    └──────────────────── 分 (0 - 59)
      └───────────────────────── 秒 (0 - 59,可选)
    
  5. 进入容器,启动项目

    1. 进入 tech-study-docker 容器

      docker compose exec tech-study-docker bash
    2. 启动 node 项目

      pnpm start

About

学习强国Docker 40分/天 A flexible and light docker image for xuexiqiangguo based on Node.js


Languages

Language:TypeScript 68.1%Language:Dockerfile 31.9%