diff --git a/docker_run.sh b/docker_run.sh index 791ba079..ac85fed6 100755 --- a/docker_run.sh +++ b/docker_run.sh @@ -18,4 +18,8 @@ if [ "$RESET_DB" = "true" ]; then pipenv run flask load-example-data fi -pipenv run gunicorn -e SCRIPT_NAME="$APPLICATION_ROOT" --bind 0.0.0.0:"$PORT0" wsgi:app +if [ "$APPLICATION_ROOT" = "/" ]; then + pipenv run gunicorn -e --bind 0.0.0.0:$PORT0 wsgi:app +else + pipenv run gunicorn -e SCRIPT_NAME="$APPLICATION_ROOT" --bind 0.0.0.0:$PORT0 wsgi:app +fi diff --git a/wsgi.py b/wsgi.py index 217dc506..6e5d72be 100644 --- a/wsgi.py +++ b/wsgi.py @@ -8,11 +8,14 @@ if __name__ == "__main__": def no_app(environ, start_response): return NotFound()(environ, start_response) - # Remove trailing slash, but add leading slash base_url = '/' + app.config['APPLICATION_ROOT'].strip('/') + routes = {'/': app.wsgi_app} - app.wsgi_app = DispatcherMiddleware(no_app, {app.config['APPLICATION_ROOT']: app.wsgi_app}) + if base_url != '/': + routes[base_url] = app.wsgi_app + + app.wsgi_app = DispatcherMiddleware(no_app, routes) app.wsgi_app = ProxyFix(app.wsgi_app) flask_port = app.config['FLASK_PORT']