WSGI server adds a lot features such as running PyWebScrapBook in a subpath.
I added SCRIPT_NAME environment in docker-compose.yml. Added pyuwsgi package in the container and replaced $EXEC_WSB --root $PATH_DATA serve with uwsgi --http 0.0.0.0:8080 --manage-script-name --mount "$SCRIPT_NAME"=/data/.wsb/app.py --master --processes 1 --threads 1 in run_wsb.sh. Then I can access PyWebScrapBook under the subpath specified in $SCRIPT_NAME