Docker系列六EPIC领游戏
前言
自動嫖E寶兒的游戲!剛上車沒幾天,E寶看不下去了,直接把車給掀了。
后來又有后繼者重新上傳分享了鏡像數據,但是在嘗試之后,用QQ郵箱總是無法通過校驗,暫且擱置。
安裝新鏡像
又一次更新的時候,發現了新的鏡像庫,心情好到飛起~
?# 拉取鏡像docker pull charlocharlie/epicgames-freegames登陸網站查看內容:Docker Hub
看完閱讀說明,運行命令。
docker run \-d \-e TZ=Asia/Shanghai \-e EMAIL=epic郵箱 \-e PASSWORD=epic密碼 \-e RUN_ON_STARTUP=true \-e BASE_URL=https://www.epicgames.com \-e EMAIL_SENDER_ADDRESS=1533859388@qq.com \-e EMAIL_SENDER_NAME="Epic Games Captchas" \-e EMAIL_RECIPIENT_ADDRESS=qq號@qq.com \-e SMTP_SECURE=true \-e SMTP_USERNAME=qq號@qq.com \-e SMTP_PASSWORD=qq郵箱密碼 \-v /home/keen/docker/epic/:/usr/app/config:rw \-p 3000:3000 \--restart=always \-m 2g \charlocharlie/epicgames-freegames:latest-
-d:后臺運行
-
-e TZ=Asia/Shanghai:設置時區為上海
-
-e EMAIL: 賬號
-
-e PASSWORD: 密碼
-
-e TOTP: 開啟雙重認證后填入雙重認證密鑰,我沒有就刪掉了
-
-e RUN_ON_STARTUP: 開啟即運行,腳本參數
-
-e BASE_URL: 指定Epic的官網
-
-e EMAIL_SENDER_ADDRESS:發送郵件的地址
-
-e EMAIL_SENDER_NAME: 郵件的主題
-
-e EMAIL_RECIPIENT_ADDRESS: 郵件的接受地址
-
-e SMTP_USERNAME: 郵箱的登陸賬號
-
-e SMTP_PASSWORD: 郵箱的登陸密碼
-
-v 路徑映射
-
-p 3000:3000 :映射宿主機的3000端口到容器服務的3000端口
-
--restart=always:Docker 重啟的時候容器也會重啟
-
-m: 設置最大使用內存為2G
-
使用鏡像charlocharlie/epicgames-freegames的最新版本
的確是所見即所得,重新登陸到賬號上面去看,沒有自動領取游戲。
參考官網簡介,重新修改配置文件,還花了兩毛錢,打開了qq郵箱的SMTP服務,將"testNotifiers"設置為true,嘗試測試能否校驗通過。
?{"cronSchedule": "0 12 * * *","searchStrategy": "all","runOnStartup": true,"runOnce": false,"timezone": "Asia/Shanghai","intervalTime": 60,"logLevel": "info","notificationTimeoutHours": 24,"testNotifiers":true,"skipVersionCheck": false,"noHumanErrorHelp": false,"browserLaunchTimeout": 15,"browserLaunchRetryAttempts": 5,"browserNavigationTimeout": 30000,"accounts": [{"email": "Epic的郵箱","password": "Epic的密碼"}],"webPortalConfig": {"localtunnel": false,"baseUrl": "https://www.epicgames.com"},"notifiers": [{"type": "email","smtpHost": "mail.qq.com","smtpPort": 587,"emailSenderAddress": "qq郵箱","emailSenderName": "Epic Games Captchas","emailRecipientAddress": "qq郵箱","secure": false,"auth": {"user": "qq郵箱","pass": "SMTP密鑰"}}]}學藝不精,使用Node發送郵件一直失敗,所以校驗總是不通過,暫且放下之后慢慢嘗試吧。
?
安裝舊鏡像
不用再看這個鏡像了,因為這個鏡像的作者已經刪庫跑路了,大家直接忽略就可以了。
安裝epicgames-claimer
首先搜索并且拉取鏡像。
docker?search?epicgamesdocker?pull?luminoleon/epicgames-claimer哦吼~先建個臨時容器看看是怎么樣子的。
#?運行容器 docker?run?\--name='epicFreeGame'?\luminoleon/epicgames-claimer#?進入容器 docker?exec?-it?epicFreeGame?/bin/bash哈哈,原來是python腳本啊,退出容器后,將這個python文件復制出來,然后刪除臨時容器。
#退出容器 exit#?復制文件 mkdir?-p?/home/keen/docker/epic/ docker?cp?epicFreeGame:/epicgames_claimer.py?/home/keen/docker/epic/epicgames_claimer.py docker?cp?epicFreeGame:/main.py?/home/keen/docker/epic/main.py docker?cp?epicFreeGame:/requirements.txt?/home/keen/docker/epic/requirements.txt#?停止并銷毀臨時容器 docker?stop?epicFreeGame?&&?docker?rm?epicFreeGame仔細查看代碼后,沒有什么明顯的后門,那就姑且一用。
docker?run?\-d?\--restart=always?\-e?PYTHONUNBUFFERED=0?\-v?/etc/localtime:/etc/localtime:ro?\-e?TZ=Asia/Shanghai?\-e?RUN_AT=09:27?\--name?epicFreeGame?\-v?/home/keen/docker/epic/User_Data:/User_Data?\-v?/home/keen/docker/epic/main.py:/main.py?\-v?/home/keen/docker/epic/epicgames_claimer.py:/epicgames_claimer.py?\-v?/home/keen/docker/epic/requirements.txt:/requirements.txt?\luminoleon/epicgames-claimer?\-u?qq郵箱?\-p?密碼運行之后,還會新增一個截圖,可以拿出來看看。
docker?cp?epicFreeGame:/screenshot.png?/home/keen/docker/epic/screenshot.png是沒有領取成功的意思么?不知道誒……,成功領取到了!
日志持久化和修改容器映射
沒有辦法看到日志的嘛?全局搜索后也沒找到,仔細查看了epicgames_claimer.py文件之后,發現了就是使用print函數打印到命令行了,頭大,干脆就小小的修改一下好了。
先進去容器,新建一個日志文件
docker?exec?-it?epicFreeGame?/bin/bashtouch?/tmp/keen.log接著修改腳本內容:
f?=?open("./tmp/keen.log",?'w+')def?log(text:?str,?level:?str?=?"info")?->?None:localtime?=?time.asctime(time.localtime(time.time()))if?level?==?"info":print("[{}]?{}".format(localtime,?text),?file=f)elif?level?==?"warning":print("\033[33m[{}]?Warning:?{}\033[0m".format(localtime,?text),?file=f)elif?level?==?"error":print("\033[31m[{}]?Error:?{}\033[0m".format(localtime,?text),?file=f)不要忘記將該容器內新增一個文件映射,修改對應容器的
#?默認容器的配置文件/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json/var/lib/docker/containers/2f532f52c833/hostconfig.json修改其中的
"Binds":?["/home/keen/docker/epic/User_Data:/User_Data",?"/home/keen/docker/epic/main.py:/main.py",?"/home/keen/docker/epic/keen.log:/tmp/keen.log",?"/home/keen/docker/epic/epicgames_claimer.py:/epicgames_claimer.py",?"/home/keen/docker/epic/requirements.txt:/requirements.txt"],到這里算是完成了,接著關掉并且重啟該容器即可。
docker?stop?epicFreeGame?&&?docker?start?epicFreeGame感謝
感謝現在的好奇,為了能成為更好的自己。
謹以此文獻給以前貧窮的自己,還有現在的窮鬼。/捂臉痛哭
總結
以上是生活随笔為你收集整理的Docker系列六EPIC领游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员常见英文缩写及其意义
- 下一篇: 再见牛根生,再见英雄时代