From f0d935291715742b2e9f71c1b5e1ecbf23d02eff Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Mon, 18 May 2020 18:43:06 +0000 Subject: [PATCH] Replace uwsgi with waitress due to 400 Bad Request issues --- config.json | 6 +++++- Dockerfile | 4 ++-- /dev/null | 16 ---------------- requirements.txt | 1 + run.py | 7 ++++++- 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index d31ab7a..98b66ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM alpine -RUN apk add uwsgi-python3 python3 py3-pip +RUN apk add python3 py3-pip RUN mkdir -p /run/docker/plugins /usr/src/app \ && chown -R nobody:nobody /run/docker/plugins /usr/src/app USER nobody @@ -12,4 +12,4 @@ COPY --chown=nobody:nobody . . -CMD [ "uwsgi", "--ini", "uwsgi.ini" ] +CMD [ "./run.py" ] diff --git a/config.json b/config.json index f2751c2..683359c 100644 --- a/config.json +++ b/config.json @@ -2,9 +2,13 @@ "description": "pyIPAM - IPAM driver in Python", "documentation": "https://github.com/jacekkow/docker-plugin-pyipam", "workdir": "/usr/src/app", - "entrypoint": ["uwsgi", "--ini", "uwsgi.ini"], + "entrypoint": ["./run.py"], "env": [ { + "name": "ENVIRONMENT", + "value": "production" + }, + { "name": "HOME", "value": "/usr/src/app" } diff --git a/requirements.txt b/requirements.txt index ba512e1..7ecff0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ docker-plugin-api Flask +waitress diff --git a/run.py b/run.py index 7645305..7502587 100755 --- a/run.py +++ b/run.py @@ -1,9 +1,11 @@ #!/usr/bin/env python3 import logging +import os import docker_plugin_api.Plugin import flask +import waitress app = flask.Flask('pyIPAM') app.logger.setLevel(logging.DEBUG) @@ -15,4 +17,7 @@ app.register_blueprint(lib.IpamDriver.app) if __name__ == '__main__': - app.run(debug=True) + if os.environ.get('ENVIRONMENT', 'dev') == 'dev': + app.run(debug=True) + else: + waitress.serve(app, unix_socket='/run/docker/plugins/pyipam.sock', threads=1) diff --git a/uwsgi.ini b/uwsgi.ini deleted file mode 100644 index 54d12ba..0000000 --- a/uwsgi.ini +++ /dev/null @@ -1,16 +0,0 @@ -[uwsgi] -shared-socket = /run/docker/plugins/pyipam.sock -http-socket = =0 -;uid = 65534 -;gid = 65534 - -die-on-term = true -honour-stdin = true - -master = true -processes = 1 -single-interpreter = true - -plugins = python3 -module = run -callable = app -- Gitblit v1.9.1