Skip to content

Commit 7a94f24

Browse files
noO0oOo0obnoO0ob
andauthored
Feature/change docker base image (#896)
* init change * change mitm start command in docker --------- Co-authored-by: noO0ob <[email protected]>
1 parent 605470d commit 7a94f24

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

Dockerfile

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,30 @@
1-
FROM node:14.15-alpine as nodebuilder
1+
FROM node:16-slim as nodebuilder
22
ARG USE_MIRROR
33
COPY . /usr/src
44
WORKDIR /usr/src/frontend
55
RUN if [[ -n "$USE_MIRROR" ]] ; then npm --registry https://registry.npmmirror.com install ; else npm install ; fi \
66
&& npm run build
77

8-
FROM python:3.8-alpine as pybuilder
8+
FROM python:3.9-slim
99
ARG USE_MIRROR
1010
ENV PYTHONUNBUFFERED 1
11+
ENV IS_DOCKER_CONTAINER 1
12+
1113
COPY . /usr/src
1214
WORKDIR /usr/src
1315
COPY --from=nodebuilder /usr/src/lyrebird/client/ /usr/src/lyrebird/client/
14-
RUN if [[ -n "$USE_MIRROR" ]] ; then sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories ; fi \
15-
&& apk update \
16-
&& apk add --no-cache build-base jpeg-dev zlib-dev libffi-dev openssl-dev redis \
16+
17+
RUN if [[ -n "$USE_MIRROR" ]] ; then sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list ; fi \
18+
&& apt-get update \
19+
&& apt-get install -y build-essential libjpeg-dev zlib1g-dev libffi-dev libssl-dev curl libstdc++6 tzdata redis-server \
1720
&& if [[ -n "$USE_MIRROR" ]] ; then pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple && pip install --no-cache-dir . facebook-wda==0.8.1 jsonschema redis -i https://pypi.tuna.tsinghua.edu.cn/simple ; else pip install --upgrade pip && pip install --no-cache-dir . facebook-wda==0.8.1 jsonschema redis ; fi \
1821
&& if [[ -n "$USE_MIRROR" ]] ; then pip install werkzeug==2.2.2 mitmproxy -t /usr/local/mitmenv -i https://pypi.tuna.tsinghua.edu.cn/simple ; else pip install werkzeug==2.2.2 mitmproxy -t /usr/local/mitmenv ; fi \
19-
&& rm -rf /usr/src \
20-
&& apk del --purge build-base jpeg-dev zlib-dev libffi-dev openssl-dev
21-
22-
FROM python:3.8-alpine
23-
ARG USE_MIRROR
24-
ENV PYTHONUNBUFFERED 1
25-
RUN if [[ -n "$USE_MIRROR" ]] ; then sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories ; fi \
26-
&& apk update \
27-
&& apk add --no-cache jpeg zlib libffi openssl curl libstdc++ tzdata redis\
2822
&& echo -e "#!/bin/sh\nexport PYTHONPATH=/usr/local/mitmenv\npython -c 'from mitmproxy.tools.main import mitmdump;mitmdump()' \$@" > /usr/local/bin/mitmdump \
29-
&& chmod a+x /usr/local/bin/mitmdump
30-
COPY --from=pybuilder /usr/local/lib/python3.8/site-packages /usr/local/lib/python3.8/site-packages
31-
COPY --from=pybuilder /usr/local/bin /usr/local/bin
32-
COPY --from=pybuilder /usr/local/mitmenv /usr/local/mitmenv
23+
&& chmod a+x /usr/local/bin/mitmdump \
24+
&& rm -rf /usr/src \
25+
&& apt-get purge -y build-essential \
26+
&& apt-get autoremove -y \
27+
&& apt-get clean
3328

3429
EXPOSE 9090 4272
3530
CMD [ "lyrebird" ]

lyrebird/mitm/proxy_server.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,14 @@ def start_mitmdump(self, queue, config, logger, mitmdump_path):
8585
mitmenv['MOCK_PORT'] = str(mock_port)
8686
mitmenv['PROXY_PORT'] = str(extra_mock_port)
8787
mitmenv['PROXY_FILTERS'] = json.dumps(config.get('proxy.filters', []))
88+
mitm_start_command = []
89+
if os.environ.get('IS_DOCKER_CONTAINER'):
90+
# The Docker environment lacks some command capabilities because it is a slim image. Therefore, /bin/sh needs to be manually specified
91+
mitm_start_command = ['/bin/sh', str(mitmdump_path)] + mitm_arguments
92+
else:
93+
mitm_start_command = [str(mitmdump_path)] + mitm_arguments
8894
logger.info('HTTP proxy server starting...')
89-
subprocess.Popen([str(mitmdump_path)]+mitm_arguments, env=mitmenv)
95+
subprocess.Popen(mitm_start_command, env=mitmenv)
9096
is_mitm_start = self.wait_for_mitm_start(config, logger)
9197
if is_mitm_start:
9298
self.publish_init_status(queue, 'READY')

lyrebird/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
IVERSION = (3, 2, 2)
1+
IVERSION = (3, 2, 3)
22
VERSION = ".".join(str(i) for i in IVERSION)
33
LYREBIRD = "Lyrebird " + VERSION

0 commit comments

Comments
 (0)