From 44a5c8e635c458c86805041ec95dfb42adc4fb23 Mon Sep 17 00:00:00 2001 From: Llloooggg Date: Sun, 15 Aug 2021 13:03:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20Docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 26 ++++++++++++++++++++++++++ Dockerfile | 25 +++++++++++++++++++++++++ docker-compose.debug.yml | 17 +++++++++++++++++ docker-compose.yml | 16 ++++++++++++++++ requirements.txt | 1 + runscripts/docker/buildandrun.bat | 2 ++ runscripts/docker/buildandrun.sh | 4 ++++ runscripts/heroku/buildandpush.bat | 3 +++ runscripts/heroku/buildandpush.sh | 5 +++++ runscripts/linux/startserverprod.sh | 7 ------- runscripts/windows/startserverprod.bat | 2 +- 11 files changed, 100 insertions(+), 8 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.debug.yml create mode 100644 docker-compose.yml create mode 100644 runscripts/docker/buildandrun.bat create mode 100644 runscripts/docker/buildandrun.sh create mode 100644 runscripts/heroku/buildandpush.bat create mode 100644 runscripts/heroku/buildandpush.sh delete mode 100644 runscripts/linux/startserverprod.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1e01d2f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,26 @@ +**/__pycache__ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..be05d57 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# For more information, please refer to https://aka.ms/vscode-docker-python +FROM python:3.8-slim-buster + +EXPOSE 5000 + +# Keeps Python from generating .pyc files in the container +ENV PYTHONDONTWRITEBYTECODE=1 + +# Turns off buffering for easier container logging +ENV PYTHONUNBUFFERED=1 + +# Install pip requirements +COPY requirements.txt . +RUN python -m pip install -r requirements.txt + +WORKDIR /app +COPY . /app + +# Creates a non-root user with an explicit UID and adds permission to access the /app folder +# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers +RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app +USER appuser + +# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug +CMD ["sh", "-c", "gunicorn --bind 0.0.0.0:$PORT dyxless.__init__:app"] diff --git a/docker-compose.debug.yml b/docker-compose.debug.yml new file mode 100644 index 0000000..dce4868 --- /dev/null +++ b/docker-compose.debug.yml @@ -0,0 +1,17 @@ +version: '3.4' + +services: + dyxless: + image: dyxless + build: + context: . + dockerfile: ./Dockerfile + command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 -m flask run --no-debugger --no-reload --host 0.0.0.0 --port 5000"] + ports: + - 5000:5000 + - 5678:5678 + working_dir: /dyxless + volumes: + - ./:/dyxless + environment: + - FLASK_APP=dyxless diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2f19d6b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.4' + +services: + dyxless: + image: dyxless + build: + context: . + dockerfile: ./Dockerfile + ports: + - 5000:5000 + working_dir: /dyxless + volumes: + - ./:/dyxless + environment: + - FLASK_APP=dyxless + \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 3e1d438..0bd7a4c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,7 @@ Flask-Login==0.5.0 Flask-Mail==0.9.1 Flask-SQLAlchemy==2.5.1 greenlet==1.1.0 +gunicorn==20.1.0 itsdangerous==2.0.1 Jinja2==3.0.1 MarkupSafe==2.0.1 diff --git a/runscripts/docker/buildandrun.bat b/runscripts/docker/buildandrun.bat new file mode 100644 index 0000000..c0fbe47 --- /dev/null +++ b/runscripts/docker/buildandrun.bat @@ -0,0 +1,2 @@ +docker-compose build +docker-compose up diff --git a/runscripts/docker/buildandrun.sh b/runscripts/docker/buildandrun.sh new file mode 100644 index 0000000..6299ab4 --- /dev/null +++ b/runscripts/docker/buildandrun.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker-compose build +docker-compose up diff --git a/runscripts/heroku/buildandpush.bat b/runscripts/heroku/buildandpush.bat new file mode 100644 index 0000000..1d07d1c --- /dev/null +++ b/runscripts/heroku/buildandpush.bat @@ -0,0 +1,3 @@ +docker-compose build +heroku container:push web -a dyxless & ^ +heroku container:release web -a dyxless diff --git a/runscripts/heroku/buildandpush.sh b/runscripts/heroku/buildandpush.sh new file mode 100644 index 0000000..ec067bf --- /dev/null +++ b/runscripts/heroku/buildandpush.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +docker-compose build +heroku container:push web -a dyxless || true +heroku container:release web -a dyxless diff --git a/runscripts/linux/startserverprod.sh b/runscripts/linux/startserverprod.sh deleted file mode 100644 index df47045..0000000 --- a/runscripts/linux/startserverprod.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -set echo off - -export FLASK_APP=dyxless - -flask run diff --git a/runscripts/windows/startserverprod.bat b/runscripts/windows/startserverprod.bat index ff48817..c84a772 100644 --- a/runscripts/windows/startserverprod.bat +++ b/runscripts/windows/startserverprod.bat @@ -3,4 +3,4 @@ set FLASK_APP=dyxless -flask run +gunicorn --bind 0.0.0.0:$PORT dyxless.__init__:app