12306 icon indicating copy to clipboard operation
12306 copied to clipboard

Windows 10系统下docker构建项目,已成功运行,供大家参考

Open xbronze opened this issue 5 years ago • 9 comments

我是在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 在这里插入图片描述 在这里插入图片描述

xbronze avatar Dec 27 '19 06:12 xbronze

不用docker和hyper-v要更简单一点

yangelar avatar Dec 27 '19 09:12 yangelar

安装docker-compose以后,步骤3,4,5都不需要,只需要修改下配置文件即可。

hhzrz avatar Dec 27 '19 10:12 hhzrz

学习了

sendtion avatar Dec 28 '19 01:12 sendtion

有点怀疑自己,难道说我直接项目拉下来改打码位2运行成功,是巧合吗

soul-cat avatar Dec 29 '19 03:12 soul-cat

请求哪位朋友遇到如下报错? 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'

ScnuWang avatar Dec 30 '19 07:12 ScnuWang

你那是环境没装好,pip install cv2

soul-cat avatar Dec 30 '19 11:12 soul-cat

请求哪位朋友遇到如下报错? 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 我也遇到这个问题

summerKK avatar Dec 31 '19 06:12 summerKK

把 AUTO_CODE_TYPE = 2 改成3 ,其他不用动

lyslys888 avatar Dec 31 '19 16:12 lyslys888

请求哪位朋友遇到如下报错? 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 ,其他不用动

lyslys888 avatar Jan 01 '20 02:01 lyslys888