zoukankan      html  css  js  c++  java
  • Docker

    EvineDeng edited this page 18 hours ago · 76 revisions

    脚本可以干什么

    1. 自动更新lxk0301的京东薅羊毛脚本,自动更新我的shell脚本(git_pull)。

    2. 自动按设定天数删除旧日志(rm_log)。

    3. 自动添加新的定时任务(git_pull)。

    4. 自动删除失效的定时任务(git_pull)。

    5. 一键导出所有互助码(export_sharecodes)

    6. 自动按crontab.list设定的时间去跑各个薅羊毛脚本。

    操作流程

    1. 安装好docker(中文教程),然后创建容器:

      注1:如果是旁路由,建议用--network host 代替-p 5678:5678 这一行。

      注2:如果想要看到lxk0301大佬的js脚本,并且重新部署也不影响自己添加的额外脚本,可以增加一行-v /你想存放的路径/jd/scripts:/jd/scripts ,不过这会增加占用约50M空间,并且会在创建时自动克隆lxk0301的js脚本。

      注3:容器本身默认会在启动时自动启动挂机程序,如不想自动启动,请增加一行-e ENABLE_HANGUP=false

      注4:容器本身默认会在启动时自动启动控制面板,如不想自动启动,请增加一行-e ENABLE_WEB_PANEL=false

      docker run -dit 
      -v /你想存放的路径/jd/config:/jd/config `# 配置保存目录,冒号左边请修改为你想存放的路径` 
      -v /你想存放的路径/jd/log:/jd/log `# 日志保存目录,冒号左边请修改为你想存放的路径` 
      -p 5678:5678 
      --name jd 
      --hostname jd 
      --restart always 
      evinedeng/jd:gitee
    2. 请在创建后使用docker logs -f jd查看创建日志,直到出现容器启动成功...字样才代表启动成功(不是以此结束的请更新镜像),按Ctrl+C退出查看日志。

    3. 访问http://<ip>:5678(ip是指你Docker宿主机的局域网ip),初始用户名:admin,初始密码:adminadmin,请登陆后务必修改密码,并在线编辑config.shcrontab.list,其中config.sh可以对比修改,如何修改请仔细阅读各文件注释。如未启用控制面板自动启动功能,请运行docker exec -it jd node /jd/panel/server.js来启动,使用完控制面板后Ctrl+C即可结束进程。如无法访问,请从防火墙、端口转发、网络方面着手解决。实在无法访问,就使用winscp工具sftp连接进行修改。

    4. 只有Cookie是必填项,其他根据你自己需要填。编辑好后,如果需要启动挂机程序(目前只有一个疯狂的JOY需要挂机),请重启容器:docker restart jd。在创建容器前config.sh中就有有效Cookie的,无需重启容器。

    5. 如何自动更新Docker容器

      安装containrrr/watchtower可以自动更新容器,它也是一个容器,但这个容器可以监视你安装的所有容器的原始镜像的更新情况,如有更新,它将使用你原来的配置自动重新部署容器。部署containrrr/watchtower最简单的方式如下:

      docker run -d 
          --name watchtower 
          -v /var/run/docker.sock:/var/run/docker.sock 
          containrrr/watchtower

      你也可以访问 https://containrrr.dev/watchtower/ 获取更详细的部署说明,包括如何避开某些容器不让它自动更新,如何发更新容器后发送通知,设置检测时间等等。

    home

    GetCookie1

    GetCookie2

    crontab

    diff

    以下仅供有一定基础的玩家使用,小白勿碰,提问不回,有问题自行根据wiki解决

    以下仅供有一定基础的玩家使用,小白勿碰,提问不回,有问题自行根据wiki解决

    以下仅供有一定基础的玩家使用,小白勿碰,提问不回,有问题自行根据wiki解决

    如果多容器并发

    多个容器并发,建议使用docker-compose安装,但如果你平台无法正常安装docker-compose,或者你不想用docker-compose,按上述操作流程中方式部署不同名称不同映射路径的容器也是可以的,看你个人需要。

    如需使用docker-compose,请前往 这里 下载最新版本的文件,放在本机 /usr/local/bin下,并重命名为docker-compose

    然后参考本仓库的 docker-compose.yml 准备好你自己的docker-compose.yml,然后部署:

    ## cd 到docker-compose.yml的存放路径下
    docker-compose up -d

    如何更新配置文件

    访问http://<ip>:5678并编辑保存好即可,其他啥也不用干,容器也不用重启。其中config.sh改完立即生效,crontab.list会在下一次任何定时薅羊毛任务启动时更新。

    如未启用控制面板自动启动功能,请运行docker exec -it jd node /jd/panel/server.js来启动,使用完控制面板后Ctrl+C即可结束进程。如无法访问,请从防火墙、端口转发、网络方面着手解决。

    如何重置控制面板用户名和密码

    docker exec -it jd bash jd resetpwd

    如何添加除lxk0301大佬以外的脚本

    本环境基于node,所以也只能跑js脚本。你可以把你的后缀为.js的脚本放在你映射的config或映射的scripts下即可。比如你放了个test.js,可以在你的crontab.list中添加如下的定时任务:

    15 10 * * * bash jd test     # 如果不需要准时运行或RandemDelay未设置
    15 10 * * * bash jd test now # 如果设置了RandemDelay但又需要它准时运行

    识别顺序:1. /jd/scripts、2. /jd/scripts/backUp、3. /jd/config,如果一个脚本在多个目录下均存在,以先找到的为准。

    如果急你就运行一下docker exec -it jd crontab /jd/config/crontab.list更新定时任务即可,如果不急就等着程序自己添加进定时任务。

    注意:你额外添加的脚本不能以“jd_”、“jr_”、“jx_”开头,以“jd_”、“jr_”、“jx_”开头的任务如果不在lxk0301大佬仓库中,会被删除。

    其他说明:

    1. 如果你额外加的脚本要用到环境变量,直接在你的config.sh文件最下方按以下形式添加好变量即可(单引号或双引号均可):

      export 变量名1="变量值1"
      export 变量名2="变量值2"
      export 变量名3="变量值3"
    2. 如果你额外添加的脚本要用到lxk0301大佬仓库中的sendNotify.js来发送通知,或者要用到jdCookie.js来处理Cookie,建议你直接放在容器内的/jd/scripts文件夹下,按以下命令复制进容器(如果没有映射/jd/scripts出来的话,重新部署容器后要再次运行):

      docker cp /宿主机上脚本存放路径/test.js jd:/jd/scripts

    如何手动运行脚本

    1. 手动 git pull 更新脚本

      docker exec -it jd bash git_pull
    2. 手动删除指定时间以前的旧日志

      docker exec -it jd bash rm_log
    3. 手动导出所有互助码

      docker exec -it jd bash export_sharecodes
    4. 手动启动挂机程序(容器会在启动时立即启动挂机程序,所以你想重启挂机程序,你也可以重启容器,而不采用下面的方法。)

      docker exec -it jd bash jd hangup

      然后挂机脚本就会一直运行。如果你希望每天终止旧的挂机进程,然后启动新的挂机进程,请参考sample/docker.list.sample中的挂机定时任务,添加到自己的crontab.list中。目前仅一个jd_crazy_joy_coin.js为挂机脚本。

      如需查看挂机脚本日志,请进入容器后输入pm2 monitpm2 logs查看。因挂机程序日志过多,不再记录在log文件中。

    5. 手动执行薅羊毛脚本,用法如下(其中exec后面的jd为容器名,bash后面的jd为命令名,xxx为lxk0301大佬的脚本名称),不支持直接以node xxx.js命令运行:

      docker exec jd bash jd xxx      # 如果设置了随机延迟并且当时时间不在0-2、30-31、59分内,将随机延迟一定秒数
      docker exec jd bash jd xxx now  # 无论是否设置了随机延迟,均立即运行
      

      如果你忘记了命令也不要紧,只要你记得命令jd就行,输入后会提示你:

      Docker1

      脚本名不记得也不要紧,输错了也会提示你的:

      Docker2

  • 相关阅读:
    java
    图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
    ListView分栏--制作分栏音乐列表
    Android中Touch事件的传递机制
    Android进程间通信之使用AIDL
    Android进程间通信之使用Messenger
    Android Mms之短信接收流程--从Framework到App
    Android组件的使用:ListView、GridView
    Android组件的使用:AutoCompleteTextView、Spinner
    Android组件的使用:DatePicker,TimePicker
  • 原文地址:https://www.cnblogs.com/yylei/p/14285764.html
Copyright © 2011-2022 走看看