mirror of https://github.com/testerSunshine/12306
Optimization: optimize docker images size from over 2.2GB to about 760MB
parent
e907e968f2
commit
93c6db471c
|
@ -12,3 +12,4 @@
|
|||
*.md
|
||||
UnitTest/
|
||||
uml/
|
||||
*.h5
|
||||
|
|
74
Dockerfile37
74
Dockerfile37
|
@ -1,49 +1,51 @@
|
|||
FROM python:3.7
|
||||
FROM python:3.7-slim-buster
|
||||
|
||||
ARG CDV=77.0.3865.40
|
||||
|
||||
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
|
||||
echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib' > /etc/apt/sources.list && \
|
||||
echo 'deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib' >> /etc/apt/sources.list && \
|
||||
echo 'deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' >> /etc/apt/sources.list
|
||||
RUN sed -i 's/deb.debian.org/ftp.cn.debian.org/g' /etc/apt/sources.list
|
||||
|
||||
RUN apt-get -y update
|
||||
RUN apt-get -y update && apt-get install -y \
|
||||
fonts-liberation \
|
||||
libappindicator3-1 \
|
||||
libasound2 \
|
||||
libatk-bridge2.0-0 \
|
||||
libatk1.0-0 \
|
||||
libatspi2.0-0 \
|
||||
libcups2 \
|
||||
libdbus-1-3 \
|
||||
libgtk-3-0 \
|
||||
libnspr4 \
|
||||
libnss3 \
|
||||
libx11-xcb1 \
|
||||
libxcomposite1 \
|
||||
libxcursor1 \
|
||||
libxdamage1 \
|
||||
libxfixes3 \
|
||||
libxi6 \
|
||||
libxrandr2 \
|
||||
libxss1 \
|
||||
libxtst6 \
|
||||
lsb-release \
|
||||
unzip \
|
||||
wget \
|
||||
xdg-utils \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV TZ Asia/Shanghai
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
RUN wget -c https://dl.lancdn.com/landian/soft/chrome/m/77.0.3865.120_amd64.deb && \
|
||||
apt-get install -y adwaita-icon-theme at-spi2-core dbus dconf-gsettings-backend dconf-service fonts-liberation glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libcolord2 libcups2 libdbus-1-3 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdconf1 libdrm2 libfile-basedir-perl libfile-desktopentry-perl libfile-mimeinfo-perl libfontenc1 libgl1-mesa-glx libglapi-mesa libgnutls-deb0-28 libgtk-3-0 libgtk-3-bin libgtk-3-common libhogweed2 libindicator3-7 libjson-glib-1.0-0 libjson-glib-1.0-common libnettle4 libnspr4 libnss3 libproxy1 librest-0.7-0 libsoup-gnome2.4-1 libsoup2.4-1 libwayland-client0 libwayland-cursor0 libx11-protocol-perl libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxmu6 libxmuu1 libxpm4 libxrandr2 libxshmfence1 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 multiarch-support x11-utils x11-xserver-utils xdg-utils xkb-data libgconf2-4 lsb-release && \
|
||||
dpkg -i 77.0.3865.120_amd64.deb && \
|
||||
wget -c http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE
|
||||
RUN wget -q https://dl.lancdn.com/landian/soft/chrome/m/77.0.3865.120_amd64.deb && \
|
||||
dpkg -i 77.0.3865.120_amd64.deb && rm -f 77.0.3865.120_amd64.deb
|
||||
|
||||
|
||||
RUN wget -c https://npm.taobao.org/mirrors/chromedriver/$CDV/chromedriver_linux64.zip && \
|
||||
apt-get install -y unzip && \
|
||||
unzip chromedriver_linux64.zip
|
||||
|
||||
|
||||
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
COPY requirements.txt /usr/src/app/
|
||||
RUN wget -q https://npm.taobao.org/mirrors/chromedriver/$CDV/chromedriver_linux64.zip && \
|
||||
unzip chromedriver_linux64.zip && rm -f chromedriver_linux64.zip
|
||||
|
||||
## install python requirements
|
||||
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider --no-cache-dir -r requirements.txt
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
COPY requirements-docker37.txt ./
|
||||
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements-docker37.txt
|
||||
|
||||
COPY . /usr/src/app
|
||||
|
||||
## install ntpdate, not accept but saving code
|
||||
#RUN echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib \
|
||||
# deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib \
|
||||
# deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' > /etc/apt/sources.list \
|
||||
# && apt-get update\
|
||||
# && apt-get install ntpdate -y \
|
||||
|
||||
|
||||
#EXPOSE 5010
|
||||
COPY . .
|
||||
|
||||
CMD [ "sh", "-c", "python run.py c && python run.py r" ]
|
||||
#ENTRYPOINT [ "python", "run.py" ]
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
positional arguments:
|
||||
operate r: 运行抢票程序, c: 过滤cdn, t: 测试邮箱和server酱,server酱
|
||||
```
|
||||
- 如果你的服务器安装了docker与docker-compose, 那么你可以忽略上面的所有步骤,直接按以下步骤操作,即可开始抢票:
|
||||
- 如果你的服务器安装了docker与docker-compose, 那么你可以忽略上面的**所有**步骤,直接按以下步骤操作,即可开始抢票:
|
||||
- 前提条件:
|
||||
- 请确认你安装的docker版本为18.09及以上: `docker -v`
|
||||
- 请确认你安装的docker-compose版本为1.23.2及以上: `docker-compose -v`
|
||||
|
|
|
@ -9,6 +9,7 @@ services:
|
|||
image: ticket:v1.2.004
|
||||
environment:
|
||||
- PYTHONUNBUFFERED=1
|
||||
- CAPTCHALOCAL=1
|
||||
container_name: ticket
|
||||
depends_on:
|
||||
- captcha
|
||||
|
@ -20,6 +21,7 @@ services:
|
|||
image: yinaoxiong/12306_code_server:amd64 #请根据需要修改image
|
||||
environment:
|
||||
- WORKERS=1 #gunicorn works 默认为1可以根据服务器配置自行调整
|
||||
- PYTHONUNBUFFERED=1
|
||||
container_name: captcha
|
||||
networks:
|
||||
- 12306network
|
||||
|
|
37
docker.sh
37
docker.sh
|
@ -1,37 +0,0 @@
|
|||
#!/bin/bash
|
||||
#author: tan
|
||||
#date: 2019-01-07
|
||||
# a script to control docker's container create restart reload and rm function
|
||||
|
||||
function checkSudo (){
|
||||
if [ $UID -ne 0 ];then
|
||||
echo -e 'it must be root!'
|
||||
echo -e 'usage ./docker.sh {run|restart|rm|logs}'
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
checkSudo
|
||||
|
||||
if [ $# -eq 1 ];then
|
||||
|
||||
case $1 in
|
||||
"run")
|
||||
docker-compose up;;
|
||||
|
||||
"restart")
|
||||
docker-compose up --no-recreate;;
|
||||
|
||||
"rm")
|
||||
docker-compose rm -f;;
|
||||
|
||||
"drun")
|
||||
docker-compose up -d;;
|
||||
"logs")
|
||||
docker-compose logs;;
|
||||
|
||||
*)
|
||||
echo -e 'usage ./docker.sh {run|restart|rm|logs}';;
|
||||
esac
|
||||
|
||||
fi
|
|
@ -5,6 +5,7 @@ from config.urlConf import urls
|
|||
from myUrllib.httpUtils import HTTPClient
|
||||
from verify.localVerifyCode import Verify
|
||||
import TickerConfig
|
||||
import os
|
||||
|
||||
|
||||
if TickerConfig.AUTO_CODE_TYPE == 2:
|
||||
|
@ -25,7 +26,7 @@ def getRandCode(is_auto_code, auto_code_type, result):
|
|||
Result = v.verify(result)
|
||||
return codexy(Ofset=Result, is_raw_input=False)
|
||||
elif auto_code_type == 3:
|
||||
print("您已设置使用云打码,但是服务器资源有限,请尽快改为本地打码")
|
||||
'CAPTCHALOCAL' not in os.environ and print("您已设置使用云打码,但是服务器资源有限,请尽快改为本地打码")
|
||||
http = HTTPClient(0)
|
||||
Result = http.send(urls.get("autoVerifyImage"), {"imageFile": result})
|
||||
if Result and Result.get("code") is 0:
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
bs4==0.0.1
|
||||
requests==2.18.4
|
||||
Pillow
|
||||
wrapcache==1.0.8
|
||||
ntplib==0.3.3
|
||||
selenium==3.11.0
|
||||
fake-useragent==0.1.11
|
Loading…
Reference in New Issue