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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM