diff --git a/docker/DockerfileARMv7 b/docker/DockerfileARMv7 new file mode 100644 index 000000000..2988b5e4d --- /dev/null +++ b/docker/DockerfileARMv7 @@ -0,0 +1,45 @@ +FROM resin/raspberrypi3-alpine:3.7 + +ENV LANG=en_US.UTF-8 + +ARG WHEEL_MITMPROXY +ARG WHEEL_BASENAME_MITMPROXY + +COPY $WHEEL_MITMPROXY /home/mitmproxy/ + +RUN [ "cross-build-start" ] + +# Add our user first to make sure the ID get assigned consistently, +# regardless of whatever dependencies get added. +RUN addgroup -S mitmproxy && adduser -S -G mitmproxy mitmproxy \ + && apk add --no-cache \ + su-exec \ + git \ + g++ \ + libffi \ + libffi-dev \ + libstdc++ \ + openssl \ + openssl-dev \ + python3 \ + python3-dev \ + && python3 -m ensurepip \ + && LDFLAGS=-L/lib pip3 install -U /home/mitmproxy/${WHEEL_BASENAME_MITMPROXY} \ + && apk del --purge \ + git \ + g++ \ + libffi-dev \ + openssl-dev \ + python3-dev \ + && rm -rf ~/.cache/pip /home/mitmproxy/${WHEEL_BASENAME_MITMPROXY} + +RUN [ "cross-build-end" ] + +VOLUME /home/mitmproxy/.mitmproxy + +COPY docker/docker-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["docker-entrypoint.sh"] + +EXPOSE 8080 8081 + +CMD ["mitmproxy"] diff --git a/release/cibuild.py b/release/cibuild.py index 17fb85545..2d11d69a3 100755 --- a/release/cibuild.py +++ b/release/cibuild.py @@ -287,7 +287,7 @@ def build_wheel(be: BuildEnviron): # pragma: no cover def build_docker_image(be: BuildEnviron, whl: str): # pragma: no cover - click.echo("Building Docker image...") + click.echo("Building Docker images...") subprocess.check_call([ "docker", "build", @@ -297,6 +297,15 @@ def build_docker_image(be: BuildEnviron, whl: str): # pragma: no cover "--file", "docker/Dockerfile", "." ]) + subprocess.check_call([ + "docker", + "build", + "--tag", be.docker_tag + "-ARMv7", + "--build-arg", "WHEEL_MITMPROXY={}".format(whl), + "--build-arg", "WHEEL_BASENAME_MITMPROXY={}".format(os.path.basename(whl)), + "--file", "docker/DockerfileARMv7", + "." + ]) def build_pyinstaller(be: BuildEnviron): # pragma: no cover @@ -498,6 +507,7 @@ def upload(): # pragma: no cover "-p", be.docker_password, ]) subprocess.check_call(["docker", "push", be.docker_tag]) + subprocess.check_call(["docker", "push", be.docker_tag + "-ARMv7"]) if __name__ == "__main__": # pragma: no cover