├── web-hello-world ├── requirements.txt ├── resources │ └── response.json ├── Dockerfile └── app.py ├── hello-world ├── app.py └── Dockerfile └── mongodb ├── app.py └── storage.py /web-hello-world/requirements.txt: -------------------------------------------------------------------------------- 1 | flask==1.1.1 2 | -------------------------------------------------------------------------------- /web-hello-world/resources/response.json: -------------------------------------------------------------------------------- 1 | { 2 | "payload": "Hello, World!!!." 3 | } -------------------------------------------------------------------------------- /hello-world/app.py: -------------------------------------------------------------------------------- 1 | import time 2 | 3 | 4 | while True: 5 | print("Hello, World!") 6 | time.sleep(1) 7 | 8 | -------------------------------------------------------------------------------- /hello-world/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6 2 | 3 | RUN mkdir -p /usr/src/app/ 4 | 5 | WORKDIR /usr/src/app/ 6 | 7 | COPY . /usr/src/app/ 8 | 9 | CMD ["python", "app.py"] 10 | -------------------------------------------------------------------------------- /web-hello-world/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6 2 | 3 | RUN mkdir -p /usr/src/app/ 4 | WORKDIR /usr/src/app/ 5 | 6 | 7 | COPY . /usr/src/app/ 8 | RUN pip install --no-cache-dir -r requirements.txt 9 | 10 | EXPOSE 8080 11 | 12 | 13 | CMD ["python", "app.py"] 14 | -------------------------------------------------------------------------------- /mongodb/app.py: -------------------------------------------------------------------------------- 1 | import time 2 | from uuid import uuid4 3 | from storage import MongodbService 4 | 5 | 6 | storage = MongodbService.get_instance() 7 | 8 | for _ in range(5): 9 | dto = { 10 | "_id": str(uuid4()), 11 | "payload": str(uuid4()), 12 | "field2": str(int(time.time())) 13 | } 14 | storage.save_data(dto) 15 | 16 | 17 | for data in storage.get_data(): 18 | print(data) 19 | -------------------------------------------------------------------------------- /web-hello-world/app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | import datetime 4 | from flask import Flask 5 | 6 | app = Flask(__name__) 7 | 8 | BASE_FOLDER = os.path.dirname(os.path.abspath(__file__)) 9 | RESOURCE_DIR = os.path.join(BASE_FOLDER, "resources") 10 | 11 | 12 | @app.route('/') 13 | def hello_world(): 14 | with open(os.path.join(RESOURCE_DIR, "response.json")) as f: 15 | return "%s - %s" % (json.loads(f.read()).get("payload"), datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S")) 16 | 17 | 18 | if __name__ == "__main__": 19 | app.run(host="0.0.0.0", port=8080, debug=True) 20 | -------------------------------------------------------------------------------- /mongodb/storage.py: -------------------------------------------------------------------------------- 1 | from pymongo import MongoClient 2 | 3 | 4 | class MongodbService(object): 5 | _instance = None 6 | _client = None 7 | _db = None 8 | 9 | @classmethod 10 | def get_instance(cls, *args, **kwargs): 11 | if cls._instance is None: 12 | cls._instance = super().__new__(cls, *args, **kwargs) 13 | cls.__init__(cls._instance, *args, **kwargs) 14 | return cls._instance 15 | 16 | def __init__(self): 17 | self._client = MongoClient("localhost", 27017) 18 | self._db = self._client.youtube_db 19 | 20 | def get_data(self): 21 | return list(self._db.statistics.find()) 22 | 23 | def save_data(self, dto): 24 | return self._db.statistics.insert_one(dto) 25 | --------------------------------------------------------------------------------