Add --server option for Gunicorn support

This commit is contained in:
c-bata
2022-02-17 20:52:27 +09:00
parent 72b23245c6
commit 03a48265cf
3 changed files with 14 additions and 8 deletions
+2 -2
View File
@@ -15,7 +15,7 @@ FROM python:3.8-buster AS python-builder
WORKDIR /usr/src
RUN pip install --upgrade pip setuptools
RUN pip install --progress-bar off PyMySQL[rsa] psycopg2-binary
RUN pip install --progress-bar off PyMySQL[rsa] psycopg2-binary gunicorn
ADD ./setup.cfg /usr/src/setup.cfg
ADD ./setup.py /usr/src/setup.py
@@ -32,5 +32,5 @@ RUN mkdir /app
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["optuna-dashboard", "--port", "8080", "--host", "0.0.0.0"]
ENTRYPOINT ["optuna-dashboard", "--port", "8080", "--host", "0.0.0.0", "--server", "gunicorn"]
+7 -5
View File
@@ -43,11 +43,13 @@ positional arguments:
storage DB URL (e.g. sqlite:///example.db)
optional arguments:
-h, --help show this help message and exit
--port PORT port number (default: 8080)
--host HOST hostname (default: 127.0.0.1)
--version, -v show program's version number and exit
--quiet, -q quiet
-h, --help show this help message and exit
--port PORT port number (default: 8080)
--host HOST hostname (default: 127.0.0.1)
--server {wsgiref,gunicorn}
server (default: wsgiref)
--version, -v show program's version number and exit
--quiet, -q quiet
```
</details>
+5 -1
View File
@@ -11,6 +11,7 @@ from .app import create_app
AUTO_RELOAD = os.environ.get("OPTUNA_DASHBOARD_AUTO_RELOAD") == "1"
SERVER_CHOICES = ["wsgiref", "gunicorn"]
def main() -> None:
@@ -22,6 +23,9 @@ def main() -> None:
parser.add_argument(
"--host", help="hostname (default: %(default)s)", default="127.0.0.1"
)
parser.add_argument(
"--server", help="server (default: %(default)s)", default="wsgiref", choices=SERVER_CHOICES
)
parser.add_argument("--version", "-v", action="version", version=__version__)
parser.add_argument("--quiet", "-q", help="quiet", action="store_true")
args = parser.parse_args()
@@ -33,7 +37,7 @@ def main() -> None:
storage = RDBStorage(args.storage)
app = create_app(storage)
run(app, host=args.host, port=args.port, quiet=args.quiet, reloader=AUTO_RELOAD)
run(app, host=args.host, port=args.port, server=args.server, quiet=args.quiet, reloader=AUTO_RELOAD)
if __name__ == "__main__":