12306
12306 copied to clipboard
Windows 10系统下docker构建项目,已成功运行,供大家参考
我是在windows 10系统下通过docker构建成功的,我遇到的问题,不一定在其它电脑环境上也会出现,所以我的构建步骤也不一定是绝对正确的,仅供参考,互相学习,如果有何不对的地方,请多多斧正。过程我也写在了个人博客上https://blog.csdn.net/bronzehammer/article/details/103730634
以下是构建过程:
1.安装docker环境
docker环境的安装参考菜鸟教程https://www.runoob.com/docker/windows-docker-install.html
打开windows系统的Hyper-V功能,此步完成后要重启一下电脑
重启后去docker官网下载 Docker Desktop
这一步需要输入Docker Hub的账号密码,去注册一个即可
安装过程就按照菜鸟教程,在此不再叙述
安装之后,查看一下docker版本和docker-compose版本
2.克隆12306项目到本地
代码Git客户端,克隆项目到本地
3.docker构建打码服务器
打码服务器的镜像文件在Docker Hub https://hub.docker.com/r/yinaoxiong/12306_code_server
> docker pull yinaoxiong/12306_code_server
pull到本地后,部署镜像
构建完毕后,查看运行的容器,会看到红框的那个容器,即为打码服务容器,端口8080
4.构建12306项目
首先要去12306项目根目录中,修改TickerConfig.py文件,按照注释设置自己要抢票的时间,车次,日期等信息。
其中有几个地方需要着重注意的:
设置本地打码服务地址
这个地址即我们第三步docker构建的打码服务器
设置RAIL_EXPIRATION、RAIL_DEVICEID的值
打开浏览器,按F12, 然后打开12306的网站,选择Network页签,找到index.html文件,在右侧Headers那个地方,找到cookie的值,里面就是要设置的RAIL_EXPIRATION、RAIL_DEVICEID的值
其它的设置按照自己的需要设置即可
TickerConfig.py文件设置完毕之后,按照下面的命令构建项目(开始抢票),停止项目(停止抢票),查看程序日志,即刷票信息(查看抢票)
开始抢票:docker-compose up --build -d 停止抢票:docker-compose down 查看抢票log: docker logs --follow ticket
5.构建12306遇到的问题
在执行docker-compose up --build -d
构建项目,会遇到下面的问题:
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out. ERROR: Service 'ticket' failed to build: The command '/bin/sh -c pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider --no-cache-dir -r requirements.txt' returned a non-zero code: 2
项目issues https://github.com/testerSunshine/12306/issues/406
我遇到相同的报错,原因是项目中的Dockerfile文件中,第一行设置的python版本号与我本地的版本号对应不上,我重新设置了版本号,再次 docker-compose up --build -d 重新构建就OK了。
我的python版本号是 3.2.4
不用docker和hyper-v要更简单一点
安装docker-compose以后,步骤3,4,5都不需要,只需要修改下配置文件即可。
学习了
有点怀疑自己,难道说我直接项目拉下来改打码位2运行成功,是巧合吗
请求哪位朋友遇到如下报错?
Docker启动运行一段时间日志提示如下:
当前ip: 120.221.64.55, 延时: 894.726
当前ip: 124.236.28.92, 延时: 895.793
当前ip: 60.28.100.158, 延时: 905.492
当前ip: 61.147.227.102, 延时: 912.21
当前ip: 159.226.225.139, 延时: 915.495
当前ip: 125.77.130.47, 延时: 918.54
当前ip: 221.180.192.254, 延时: 929.386
当前ip: 183.66.109.45, 延时: 942.564
当前ip: 106.41.0.61, 延时: 953.115
当前ip: 123.53.139.37, 延时: 968.653
当前ip: 116.77.75.133, 延时: 972.531
当前ip: 218.29.198.43, 延时: 980.721
当前ip: 222.44.151.24, 延时: 986.86
当前ip: 116.207.132.183, 延时: 991.372
Traceback (most recent call last):
File "run.py", line 21, in
你那是环境没装好,pip install cv2
请求哪位朋友遇到如下报错? Docker启动运行一段时间日志提示如下: 当前ip: 120.221.64.55, 延时: 894.726 当前ip: 124.236.28.92, 延时: 895.793 当前ip: 60.28.100.158, 延时: 905.492 当前ip: 61.147.227.102, 延时: 912.21 当前ip: 159.226.225.139, 延时: 915.495 当前ip: 125.77.130.47, 延时: 918.54 当前ip: 221.180.192.254, 延时: 929.386 当前ip: 183.66.109.45, 延时: 942.564 当前ip: 106.41.0.61, 延时: 953.115 当前ip: 123.53.139.37, 延时: 968.653 当前ip: 116.77.75.133, 延时: 972.531 当前ip: 218.29.198.43, 延时: 980.721 当前ip: 222.44.151.24, 延时: 986.86 当前ip: 116.207.132.183, 延时: 991.372 Traceback (most recent call last): File "run.py", line 21, in from init import select_ticket_info File "/usr/src/app/init/select_ticket_info.py", line 16, in from init.login import GoLogin File "/usr/src/app/init/login.py", line 8, in from inter.GetRandCode import getRandCode File "/usr/src/app/inter/GetRandCode.py", line 6, in from verify.localVerifyCode import Verify File "/usr/src/app/verify/localVerifyCode.py", line 7, in import cv2 ModuleNotFoundError: No module named 'cv2'
#675 我也遇到这个问题
把 AUTO_CODE_TYPE = 2 改成3 ,其他不用动
请求哪位朋友遇到如下报错? Docker启动运行一段时间日志提示如下: 当前ip: 120.221.64.55, 延时: 894.726 当前ip: 124.236.28.92, 延时: 895.793 当前ip: 60.28.100.158, 延时: 905.492 当前ip: 61.147.227.102, 延时: 912.21 当前ip: 159.226.225.139, 延时: 915.495 当前ip: 125.77.130.47, 延时: 918.54 当前ip: 221.180.192.254, 延时: 929.386 当前ip: 183.66.109.45, 延时: 942.564 当前ip: 106.41.0.61, 延时: 953.115 当前ip: 123.53.139.37, 延时: 968.653 当前ip: 116.77.75.133, 延时: 972.531 当前ip: 218.29.198.43, 延时: 980.721 当前ip: 222.44.151.24, 延时: 986.86 当前ip: 116.207.132.183, 延时: 991.372 Traceback (most recent call last): File "run.py", line 21, in from init import select_ticket_info File "/usr/src/app/init/select_ticket_info.py", line 16, in from init.login import GoLogin File "/usr/src/app/init/login.py", line 8, in from inter.GetRandCode import getRandCode File "/usr/src/app/inter/GetRandCode.py", line 6, in from verify.localVerifyCode import Verify File "/usr/src/app/verify/localVerifyCode.py", line 7, in import cv2 ModuleNotFoundError: No module named 'cv2'
#675 我也遇到这个问题
把 AUTO_CODE_TYPE = 2 改成3 ,其他不用动