From d94a244bc40ed1704cc3fbdf37729ef4f584c326 Mon Sep 17 00:00:00 2001 From: Sviatoslav Tsariov Date: Thu, 7 Sep 2023 18:29:53 +0300 Subject: [PATCH] docker files --- parser/.dockerignore | 52 +++++++++++++++++++ {downloader => parser}/.env.example | 0 parser/Dockerfile | 12 +++++ {downloader => parser}/app.py | 0 {downloader => parser}/collect.py | 0 {downloader => parser}/config.py | 0 parser/docker-compose.yaml | 21 ++++++++ parser/requirements.txt | 16 ++++++ parser/run.sh | 5 ++ {downloader => parser}/utils/libs/decouple.py | 0 .../utils/libs/loggedRequests.py | 0 {downloader => parser}/utils/logger.py | 0 {downloader => parser}/utils/utils.py | 0 parser/wrapper.sh | 28 ++++++++++ 14 files changed, 134 insertions(+) create mode 100644 parser/.dockerignore rename {downloader => parser}/.env.example (100%) create mode 100644 parser/Dockerfile rename {downloader => parser}/app.py (100%) rename {downloader => parser}/collect.py (100%) rename {downloader => parser}/config.py (100%) create mode 100644 parser/docker-compose.yaml create mode 100644 parser/requirements.txt create mode 100755 parser/run.sh rename {downloader => parser}/utils/libs/decouple.py (100%) rename {downloader => parser}/utils/libs/loggedRequests.py (100%) rename {downloader => parser}/utils/logger.py (100%) rename {downloader => parser}/utils/utils.py (100%) create mode 100755 parser/wrapper.sh diff --git a/parser/.dockerignore b/parser/.dockerignore new file mode 100644 index 0000000..7513fb2 --- /dev/null +++ b/parser/.dockerignore @@ -0,0 +1,52 @@ +# Ignore common Python-related files and directories +__pycache__ +*.pyc +*.pyo +*.pyd + +# Ignore development and version control files +*.log +*.swp +.git +.vscode +.idea +__init__.py + +# Ignore virtual environment and dependencies +venv/ +env/ +*.egg-info/ +*.egg +*.log + +# Ignore other temporary and build files +*.bak +*.bak1 +*.bak2 +*.swp +*.swo +*.swn +*.un~ +*.swm +*.swl +*.pyc +*.pyo +*.bak +*.bak1 +*.bak2 +*.orig +*.rej +*.log +*.backup +*.tmp +*.tmp.* +*.diff +*.cache +*.css.map +*.css.map.* + +# Ignore any specific files or directories your project generates +# Add lines for any other project-specific files or directories to ignore +.env +.env* +*.env diff --git a/downloader/.env.example b/parser/.env.example similarity index 100% rename from downloader/.env.example rename to parser/.env.example diff --git a/parser/Dockerfile b/parser/Dockerfile new file mode 100644 index 0000000..5ae87ac --- /dev/null +++ b/parser/Dockerfile @@ -0,0 +1,12 @@ +# syntax=docker/dockerfile:1 + +FROM python:3.8-slim-buster + +WORKDIR /app + +RUN apt-get update && \ + rm -rf /var/lib/apt/lists/* + +COPY . . + +ENTRYPOINT ["/app/wrapper.sh"] diff --git a/downloader/app.py b/parser/app.py similarity index 100% rename from downloader/app.py rename to parser/app.py diff --git a/downloader/collect.py b/parser/collect.py similarity index 100% rename from downloader/collect.py rename to parser/collect.py diff --git a/downloader/config.py b/parser/config.py similarity index 100% rename from downloader/config.py rename to parser/config.py diff --git a/parser/docker-compose.yaml b/parser/docker-compose.yaml new file mode 100644 index 0000000..9be5e0d --- /dev/null +++ b/parser/docker-compose.yaml @@ -0,0 +1,21 @@ +version: '2.1' +services: + agata: + container_name: agata + image: agata + build: . + network_mode: host + environment: + APP_PORT: ${APP_PORT} + + MONGO_USER: ${MONGO_USER} + MONGO_PASS: ${MONGO_PASS} + MONGO_HOST: ${MONGO_HOST} + MONGO_PORT: ${MONGO_PORT} + MONGO_DB: ${MONGO_DB} + MONGO_COLLECTION: ${MONGO_COLLECTION} + + STARS_MIN: ${STARS_MIN} + STARS_MAX: ${STARS_MAX} + + GITHUB_TOKEN: ${GITHUB_TOKEN} diff --git a/parser/requirements.txt b/parser/requirements.txt new file mode 100644 index 0000000..6838c21 --- /dev/null +++ b/parser/requirements.txt @@ -0,0 +1,16 @@ +blinker==1.6.2 +certifi==2023.7.22 +charset-normalizer==3.2.0 +click==8.1.7 +dnspython==2.4.2 +flask==2.3.3 +idna==3.4 +importlib-metadata==6.8.0 +itsdangerous==2.1.2 +Jinja2==3.1.2 +MarkupSafe==2.1.3 +pymongo==4.5.0 +requests==2.31.0 +urllib3==2.0.4 +werkzeug==2.3.7 +zipp==3.16.2 diff --git a/parser/run.sh b/parser/run.sh new file mode 100755 index 0000000..6dfcd07 --- /dev/null +++ b/parser/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Simple runner + +source venv/bin/activate +python app.py diff --git a/downloader/utils/libs/decouple.py b/parser/utils/libs/decouple.py similarity index 100% rename from downloader/utils/libs/decouple.py rename to parser/utils/libs/decouple.py diff --git a/downloader/utils/libs/loggedRequests.py b/parser/utils/libs/loggedRequests.py similarity index 100% rename from downloader/utils/libs/loggedRequests.py rename to parser/utils/libs/loggedRequests.py diff --git a/downloader/utils/logger.py b/parser/utils/logger.py similarity index 100% rename from downloader/utils/logger.py rename to parser/utils/logger.py diff --git a/downloader/utils/utils.py b/parser/utils/utils.py similarity index 100% rename from downloader/utils/utils.py rename to parser/utils/utils.py diff --git a/parser/wrapper.sh b/parser/wrapper.sh new file mode 100755 index 0000000..be1539a --- /dev/null +++ b/parser/wrapper.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# Simple wrapper for executing behave within Docker. +# +# ENVIRONMENT VARIABLES: +# +# - REQUIREMENTS_PATH: requirements fullpath; +# default = "requirements.txt" +# + + +# +# install Python packages for testing purpose, if any. +# + +if [ -z "$REQUIREMENTS_PATH" ]; then + REQUIREMENTS_PATH=requirements.txt +fi + +if [ -f "$REQUIREMENTS_PATH" ]; then + pip3 install --no-cache-dir -r $REQUIREMENTS_PATH +fi + +# +# execute behave +# + +exec python app.py