cs141135
3 years ago
4 changed files with 82 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||||
|
FROM python:3.6.8-alpine3.9 |
||||
|
|
||||
|
LABEL MAINTAINER="FirstName LastName <example@domain.com>" |
||||
|
|
||||
|
ENV GROUP_ID=1000 \ |
||||
|
USER_ID=1000 |
||||
|
|
||||
|
WORKDIR /var/www/ |
||||
|
|
||||
|
ADD . /var/www/ |
||||
|
RUN pip install -r requirements.txt |
||||
|
RUN pip install gunicorn |
||||
|
|
||||
|
RUN addgroup -g $GROUP_ID www |
||||
|
RUN adduser -D -u $USER_ID -G www www -s /bin/sh |
||||
|
|
||||
|
USER www |
||||
|
|
||||
|
EXPOSE 5000 |
||||
|
|
||||
|
CMD [ "gunicorn", "-w", "4", "--bind", "0.0.0.0:5000", "wsgi"] |
@ -0,0 +1,53 @@ |
|||||
|
import os |
||||
|
from flask import Flask, request, jsonify |
||||
|
from flask_pymongo import PyMongo |
||||
|
|
||||
|
application = Flask(__name__) |
||||
|
|
||||
|
application.config["MONGO_URI"] = 'mongodb://' + os.environ['MONGODB_USERNAME'] + ':' + os.environ['MONGODB_PASSWORD'] + '@' + os.environ['MONGODB_HOSTNAME'] + ':27017/' + os.environ['MONGODB_DATABASE'] |
||||
|
|
||||
|
mongo = PyMongo(application) |
||||
|
db = mongo.db |
||||
|
|
||||
|
@application.route('/') |
||||
|
def index(): |
||||
|
return jsonify( |
||||
|
status=True, |
||||
|
message='Welcome to the Dockerized MongoDB app!' |
||||
|
) |
||||
|
|
||||
|
@application.route('/todo') |
||||
|
def todo(): |
||||
|
_todos = db.todo.find() |
||||
|
|
||||
|
item = {} |
||||
|
data = [] |
||||
|
for todo in _todos: |
||||
|
item = { |
||||
|
'id': str(todo['_id']), |
||||
|
'todo': todo['todo'] |
||||
|
} |
||||
|
data.append(item) |
||||
|
|
||||
|
return jsonify( |
||||
|
status=True, |
||||
|
data=data |
||||
|
) |
||||
|
|
||||
|
@application.route('/todo', methods=['POST']) |
||||
|
def createTodo(): |
||||
|
data = request.get_json(force=True) |
||||
|
item = { |
||||
|
'todo': data['todo'] |
||||
|
} |
||||
|
db.todo.insert_one(item) |
||||
|
|
||||
|
return jsonify( |
||||
|
status=True, |
||||
|
message='To-do saved successfully!' |
||||
|
), 201 |
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
ENVIRONMENT_DEBUG = os.environ.get("APP_DEBUG", True) |
||||
|
ENVIRONMENT_PORT = os.environ.get("APP_PORT", 5000) |
||||
|
application.run(host='0.0.0.0', port=ENVIRONMENT_PORT, debug=ENVIRONMENT_DEBUG) |
@ -0,0 +1,3 @@ |
|||||
|
Flask==1.1.1 |
||||
|
Flask-PyMongo==2.3.0 |
||||
|
requests==2.22.0 |
@ -0,0 +1,5 @@ |
|||||
|
from app import application |
||||
|
|
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
application.run() |
Loading…
Reference in new issue