Commit graph

35 commits

Author SHA1 Message Date
Maximilian Hils
886055df17
Update to Python 3.14 (#7918)
* update to Python 3.14

* [autofix.ci] apply automated fixes

* fix python 3.14 compatibility

* bump minimum required zstandard version

0.15 was causing CI issues with Python 3.14.

* Revert "Bump hypothesis dependency (#7865)"

This reverts commit 0981668515.

windows-curses has no abi3 wheels, which blocks adoption of Python 3.14. Kill it with fire.

* remove compression from HAR tests

* add `build-essential` to build jobs

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-10-15 21:32:53 +02:00
Maximilian Hils
5274c5b4e1
Build docker images with trixie (#7851)
build docker images with trixie
2025-08-24 17:33:30 +00:00
shellvon
7c2bac5d9c
Force confdir to /home/mitmproxy/.mitmproxy when volume is root-owned (#7699)
Ensure mitmproxy uses /home/mitmproxy/.mitmproxy as the config directory
even if the mapped volume is owned by host root, preventing fallback to
/root/.mitmproxy and CA file regeneration on redeploy. Add `HOME` env confdir
in entrypoint to enforce this behavior.

Fixes mitmproxy/mitmproxy#7597
2025-05-08 11:47:33 +02:00
Maximilian Hils
d7e8258851
Add proxy mode docs for tun mode (#7558)
add proxy mode docs for tun mode
2025-02-15 18:11:43 +05:30
Maximilian Hils
99aa0a70af
Docker: use latest python and debian (#7242)
* docker: use latest python and debian

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-10-13 18:21:57 +02:00
Jason S
4087b2105d
added chown for .mitmproxy volume (#7168)
* added chown for .mitmproxy volume

* corrected chown I think

* one more try, this time with some feeling
2024-09-09 14:08:03 +02:00
Maximilian Hils
1a547d2da8
CI: Deploy to GitHub Container Registry, streamline builds (#7061) 2024-07-29 18:11:41 +00:00
Maximilian Hils
b14f9611f2
fix #6267 (#6270) 2023-07-20 10:45:43 +00:00
Vadim
2261346334
DockerHub-README.md: reword ambiguous command (#6080)
* DockerHub-README.md: reword ambiguous command

Being unfamiliar with the docker options, I thought the square brackets could be part of the command.

Instead, they refer to the sentence *after* the command, that is, they meant "optionally".

To remove the ambiguity, I put into onto different lines with an explanation.

* DockerHub-README.md: reword again, -v by default

- only leave the command with -v as an example
- grammar
- httpS link
2023-04-27 08:49:15 +00:00
Maksym Medvied
5969f25db4
pass signals to mitmproxy in docker-entrypoint.sh (#5920)
Current docker-entrypoint.sh [0][1] runs

    gosu mitmproxy "$@"

for mitmproxy, mitmdump and mitmweb. There is a problem with this
approach: bash becomes a parent process for mitmproxy [2][3], but when
signals are sent by docker-compose to mitmproxy container they are sent
to bash, but they are not delivered to mitmproxy [4]. This leads to a
slow shutdown of the container, because by default docker sends SIGTERM,
waits for 10 seconds and then sends SIGKILL if the container is still
alive [5].

This patch solves the issue by replacing bash process with mitmproxy
entirely using "exec" - this way the signals are delivered to mitmproxy
directly.

To test the patch a Dockerfile [6] that applies the patch to the release
image from the dockerhub could be used along with slighly modified
compose.yml [7]. With the patch bash is no longer running inside the
container [8] and the `docker compose down` time on my machine drops
from 10.3s to 0.5s [9].

0. https://github.com/mitmproxy/mitmproxy/blob/main/release/docker/docker-entrypoint.sh
1. To confirm that this is what's actually in the image:
    ```
    > docker run mitmproxy/mitmproxy grep gosu /usr/local/bin/docker-entrypoint.sh
      gosu mitmproxy "$@"
    ```
2. compose.yaml
    ```
    services:
      mitmproxy-test:
        image: mitmproxy/mitmproxy
        command: ["mitmweb"]
        # https://github.com/mitmproxy/mitmproxy/issues/5727
        stdin_open: true
        tty: true
    ```
3. We can see that the parent PID for mitmweb is the pid of bash.
    ```
    > docker compose up -d
    [+] Running 2/2
     ⠿ Network mitmproxy_default             Created           0.1s
     ⠿ Container mitmproxy-mitmproxy-test-1  Started           0.5s
    > docker compose top
    mitmproxy-mitmproxy-test-1
    UID    PID     PPID    C    STIME   TTY     TIME       CMD
    root   31227   31202   0    16:12   pts/0   00:00:00   /bin/bash /usr/local/bin/docker-entrypoint.sh mitmweb
    root   31314   31227   1    16:12   pts/0   00:00:01   /usr/local/bin/python /usr/local/bin/mitmweb
    ```
4. https://unix.stackexchange.com/a/196053
5. https://docs.docker.com/compose/faq/#why-do-my-services-take-10-seconds-to-recreate-or-stop
6. Dockerfile:
    ```
    FROM mitmproxy/mitmproxy

    RUN sed -i 's/^  gosu mitmproxy/  exec gosu mitmproxy/' /usr/local/bin/docker-entrypoint.sh
    ```
7. compose.yaml to build an image from Dockerfile and use it:
    ```
    services:
      mitmproxy-test:
        build:
          dockerfile: Dockerfile
          context: .
        command: ["mitmweb"]
        # https://github.com/mitmproxy/mitmproxy/issues/5727
        stdin_open: true
        tty: true
    ```
8. With the patch:
    ```
    > docker compose top
    mitmproxy-mitmproxy-test-1
    UID    PID    PPID   C    STIME   TTY     TIME       CMD
    root   4994   4970   50   17:00   pts/0   00:00:02   /usr/local/bin/python /usr/local/bin/mitmweb
     ```
9. Without the patch:
    ```
    > docker compose down
    [+] Running 2/2
     ⠿ Container mitmproxy-mitmproxy-test-1  Removed          10.2s
     ⠿ Network mitmproxy_default             Removed           0.1s
    ```
   With the patch:
    ```
    > docker compose down
    [+] Running 2/2
     ⠿ Container mitmproxy-mitmproxy-test-1  Removed           0.4s
     ⠿ Network mitmproxy_default             Removed           0.1s
    ```
2023-02-09 11:43:47 +01:00
Maximilian Hils
597eaf4148
properly assume Docker permissions, fix #5700 (#5702) 2022-10-31 18:16:00 +01:00
Maximilian Hils
b5302ab522
Upgrade to Python 3.11 (#5678)
* upgrade to Python 3.11

* compatibility fixes
2022-10-26 11:13:37 +00:00
Maximilian Hils
8023b22498
Docker: assume uid of who holds permissions (#5550)
* Docker: assume uid of who holds permissions

* add docs
2022-09-08 17:42:09 +00:00
Maximilian Hils
218c942808 docker: use Python 3.10 2022-03-19 15:38:30 +01:00
Christian Zenker
eb43ae4709
Use the slim base image for container (#4889) 2021-11-16 12:49:12 +01:00
Thomas Kriechbaumer
fffed0cb3a bump docker
closes #4846
2021-10-20 19:57:21 +02:00
Maximilian Hils
34a620e57b
Docker: Add aarch64 Images (#4637)
* feat(cibuild): add buildx multi arch builds

* chore: add changelog for arm64

* temporarily enable docker ci job for PRs

* Update cibuild.py

* Update cibuild.py

* chore(cibuild): create docker-container xbuilder

* chore(cibuild): fix lint

* temporarily remove run check to see error message

* Update cibuild.py

* Update cibuild.py

* Update cibuild.py

* Update main.yml

* Update main.yml

* Update main.yml

* Update cibuild.py

* Update cibuild.py

* Update Dockerfile

* cleanup #1

* next test

* move to test branch

* fixup

* now upload

* enable armv6/7

* use multi-stage build to reduce image size

* armv7?

* drop armv6/armv7

Co-authored-by: Niels Hofmans <hello@ironpeak.be>
2021-06-15 13:47:50 +00:00
Maximilian Hils
518fb94124
Harden CI Pipeline (#4590)
* ci: use actions/checkout@v2

* ci: always specify python version

* ci: pin external actions

* ci: split docs job, pin immediate dependencies

* ci: correct hugo sha256sum

* ci: full repo fetch depth for tests

* ci: use pip-tools to pin all the things

* ci: minor fixes

* ci: fixup

* ci: streamline pinned install

* ci: minor fixes

* ci: fix py3.8 pins

* ci: don't persist checkout credentials

* ci: always run local linter

* ci: test docs deployment from actions-hardening branch

* ci: fix docs job

* ci: pass in credentials

* ci: fix file permissions

* ci: try harder to fix docs deploy

* ci: fix docker artifact name

* Revert "ci: test docs deployment from actions-hardening branch"

This reverts commit 30cfb7a814b61a8926fc0623e3e70b6dd5106d90.

* unpin PyPI dependencies

* ci: install tox first

* ci: fixups

* ci: fixups

* ci: fixups

* ci: fixups
2021-05-11 11:17:09 +02:00
Maximilian Hils
1b0fce6aba Revert "Copy examples into Docker image (#4447)"
This reverts commit a5ed1d377b.
2021-04-05 10:31:46 +02:00
Anatoli Babenia
a5ed1d377b
Copy examples into Docker image (#4447) 2021-04-05 10:20:52 +02:00
Peter Dave Hello
66c8ecc71e
docker: avoid additional apt packages by --no-install-recommends (#4543)
This will help we keep the image not too heavy that caused by those
additional, suggestion apt packages.

Only install the packages we explicitly want.
2021-04-05 10:09:34 +02:00
Maximilian Hils
ead33008bc master branch -> main branch 2021-03-30 15:30:45 +02:00
Maximilian Hils
e40bf0251d
docker: build from release dir to speed up context sending (#4498) 2021-03-12 07:45:21 +00:00
Peter Dave Hello
123342ea0b
Improve Markdown syntax(styling) (#4496)
* Improve Markdown syntax

- Add missing blank lines
- Remove trailing spaces
- Remove additional blank lines
- Fix indentation consistency and correctness

* Update addons-examples.md

Co-authored-by: Maximilian Hils <github@maximilianhils.com>
2021-03-11 19:13:02 +01:00
Peter Dave Hello
27ba85bc30
Switch Docker release to be based on Debian instead of Alpine (#4493) 2021-03-11 16:49:07 +01:00
Thomas Kriechbaumer
aca7284ab6 post-release updates 2020-11-01 16:12:49 +01:00
Thomas Kriechbaumer
df6bbf1d4e fix docker entrypoint
fixes #3933
2020-04-13 12:20:52 +02:00
Thomas Kriechbaumer
ebc7833d04 drop Docker images for ARMv7 2020-04-13 09:46:45 +02:00
Thomas Kriechbaumer
55527c00eb docs: rename docs scripts and improve template 2020-04-11 12:25:56 +02:00
Lucas Ramage
cea443f21c Rename web-iface to web-host
Bug: https://github.com/mitmproxy/mitmproxy/issues/3891
2020-04-05 10:36:09 -04:00
Thomas Kriechbaumer
f6405abda2
Merge pull request #3329 from Kriechi/readme-slogan
update readme slogan
2019-09-28 16:45:00 +02:00
Thomas Kriechbaumer
2fb2b48a06 bump dependencies 2018-12-02 15:48:20 +01:00
Thomas Kriechbaumer
f95784ba9d update readme slogan 2018-09-21 10:38:25 +02:00
Thomas Kriechbaumer
73577eb607 update docker security warning 2018-09-18 20:42:48 +02:00
Thomas Kriechbaumer
cf15da1ed5 add docker security warning 2018-09-15 14:01:34 +02:00