From 99adbaa2931b73365abbae8c872296831a66f28a Mon Sep 17 00:00:00 2001 From: joseevilasio Date: Wed, 20 Sep 2023 23:34:26 +0100 Subject: [PATCH] config docker --- Dockerfile | 14 ++++++++++++++ docker-compose.yml | 18 ++++++++++++++++++ poetry.lock | 25 +++++++++++++++++++++++-- pyproject.toml | 1 + 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..58c6db3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM python:3.9 + +WORKDIR /app + +COPY pyproject.toml poetry.lock README.md /app/ +COPY api /app/api + +RUN pip install --no-cache-dir poetry + +RUN poetry install --no-dev + +EXPOSE 5000 + +CMD ["poetry", "run", "gunicorn", "api.app:create_app()", "-b", "0.0.0.0:5000"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9b03909 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.8' + +services: + mongodb: + image: mongo + container_name: mongodb + ports: + - "27017:27017" + + flask-app: + build: + context: . + dockerfile: Dockerfile + container_name: flask-app + ports: + - "5000:5000" + depends_on: + - mongodb diff --git a/poetry.lock b/poetry.lock index 7f0e357..6e47d4f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -434,6 +434,27 @@ WTForms = "*" [package.extras] email = ["email-validator"] +[[package]] +name = "gunicorn" +version = "21.2.0" +description = "WSGI HTTP Server for UNIX" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "gunicorn-21.2.0-py3-none-any.whl", hash = "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0"}, + {file = "gunicorn-21.2.0.tar.gz", hash = "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"}, +] + +[package.dependencies] +packaging = "*" + +[package.extras] +eventlet = ["eventlet (>=0.24.1)"] +gevent = ["gevent (>=1.4.0)"] +setproctitle = ["setproctitle"] +tornado = ["tornado (>=0.2)"] + [[package]] name = "importlib-metadata" version = "6.8.0" @@ -677,7 +698,7 @@ files = [ name = "packaging" version = "23.1" description = "Core utilities for Python packages" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1218,4 +1239,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.8.1" -content-hash = "beb62b358198e12b0c11cfe367ed5cb7bd82b4c7c2c56907bef4973bfc926165" +content-hash = "b715180c38bf5483c0cbc5f2635e854bce5ef75af1b6bd245b00b7fa684e9154" diff --git a/pyproject.toml b/pyproject.toml index 78ac79d..1bb0df2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,6 +50,7 @@ flask-pymongo = "^2.3.0" flask-admin = "^1.6.1" flask-simplelogin = "^0.1.2" flask-jwt-extended = "^4.5.2" +gunicorn = "^21.2.0" [tool.poetry.group.dev.dependencies]