Browse Source

Upload files to 'flaskapp'

master
cs141135 3 years ago
parent
commit
1fe2036d91
  1. BIN
      flaskapp/199649483_319320146469820_847612445268901138_n.png
  2. 16
      flaskapp/Dockerfile
  3. 32
      flaskapp/README.md
  4. 77
      flaskapp/docker-compose.yml
  5. 2
      flaskapp/install.sh

BIN
flaskapp/199649483_319320146469820_847612445268901138_n.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

16
flaskapp/Dockerfile

@ -0,0 +1,16 @@
FROM alpine:latest
LABEL MAINTAINER="FirstName LastName <example@domain.com>"
RUN apk --update add nginx && \
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log && \
mkdir /etc/nginx/sites-enabled/ && \
mkdir -p /run/nginx && \
rm -rf /etc/nginx/conf.d/default.conf && \
rm -rf /var/cache/apk/*
COPY conf.d/app.conf /etc/nginx/conf.d/app.conf
EXPOSE 80 443
CMD ["nginx", "-g", "daemon off;"]

32
flaskapp/README.md

@ -0,0 +1,32 @@
ΕΡΓΑΣΙΑ REAL TIME BACKEND DATABASE
##### ΕΙΣΑΓΩΓΗ
Μια βάση δεδομένων back-end είναι μια βάση δεδομένων στην οποία οι χρήστες έχουν πρόσβαση έμμεσα μέσω μιας εξωτερικής εφαρμογής και όχι μέσω προγραμματισμού εφαρμογών που είναι αποθηκευμένες εντός της ίδιας της βάσης δεδομένων ή με χαμηλό επίπεδο χειρισμού των δεδομένων καθώς και μια βάση δεδομένων back-end αποθηκεύει δεδομένα, αλλά δεν περιλαμβάνει στοιχεία εφαρμογής τελικού χρήστη, όπως αποθηκευμένα ερωτήματα, φόρμες, μακροεντολές ή αναφορές.
#### ΥΠΗΡΕΣΙΕΣ
Χρησημοποιούμε Flask, Nginx και MongoDB μέσα σε κοντέινερ Docker και κανουμε διαμόρφωση στοίβας σε ένα αρχείο docker-compose.yml, μαζί με αρχεία διαμόρφωσης για Python, MongoDB και Nginx.Επισης θα χρησιμοποιήσουμε το Gunicorn, που είναι διακομιστής Python WSGI HTTP, για την εξυπηρέτηση της εφαρμογής. Το Nginx ενεργεί ως διακομιστής μεσολάβησης αντίστροφης υπηρεσίας που προωθεί αιτήματα προς την Gunicorn για επεξεργασία.
#### ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ
Για να ακολουθήσετε αυτό το σεμινάριο, θα χρειαστείτε τα εξής:
Ένα non-root user με προνόμια sudo
Το Docker
Το Docker Compose
#### ΤΕΚΜΗΡΙΩΣΗ
Η τεκμηρίωση αποθηκεύεται ως αρχεία Markdown
Μπορούμε να to τρέξουμε και με την εντολή docker-compose up
Τέλος, ανοίξτε το παράδειγμα εφαρμογής στο πρόγραμμα περιήγησης. Τρέχει στο http://0.0.0.0/todo
Παράδειγμα εκτέλεσης:
curl -i -H "Content-Type: application/json" -X POST -d '{"todo": "Dockerize Flask application with MongoDB backend"}' http://0.0.0.0/todo
Για να δοκιμάσουμε τα πάντα, δημιουργούμε μια σημείωση υποχρεώσεων χρησιμοποιώντας το Flask API.
CS141135 ΔΗΜΗΤΡΙΟΣ ΚΑΣΤΡΙΤΗΣ
CS151037 ΑΓΓΕΛΟΣ ΝΙΑΦΑΣ
CS141054 ΑΝΤΩΝΙΟΣ ΚΟΤΙ

77
flaskapp/docker-compose.yml

@ -0,0 +1,77 @@
version: '3'
services:
flask:
build:
context: app
dockerfile: Dockerfile
container_name: flask
image: digitalocean.com/flask-python:3.6
restart: unless-stopped
environment:
APP_ENV: "prod"
APP_DEBUG: "False"
APP_PORT: 5000
MONGODB_DATABASE: flaskdb
MONGODB_USERNAME: flaskuser
MONGODB_PASSWORD: your_password
MONGODB_HOSTNAME: mongodb
volumes:
- appdata:/var/www
depends_on:
- mongodb
networks:
- frontend
- backend
mongodb:
image: mongo:4.0.8
container_name: mongodb
restart: unless-stopped
command: mongod --auth
environment:
MONGO_INITDB_ROOT_USERNAME: mongodbuser
MONGO_INITDB_ROOT_PASSWORD: your_mongodb_root_password
MONGO_INITDB_DATABASE: flaskdb
MONGODB_DATA_DIR: /data/db
MONDODB_LOG_DIR: /dev/null
volumes:
- mongodbdata:/data/db
networks:
- backend
webserver:
build:
context: nginx
dockerfile: Dockerfile
image: digitalocean.com/webserver:latest
container_name: webserver
restart: unless-stopped
environment:
APP_ENV: "prod"
APP_NAME: "webserver"
APP_DEBUG: "true"
SERVICE_NAME: "webserver"
ports:
- "80:80"
- "443:443"
volumes:
- nginxdata:/var/log/nginx
depends_on:
- flask
networks:
- frontend
networks:
frontend:
driver: bridge
backend:
driver: bridge
volumes:
mongodbdata:
driver: local
appdata:
driver: local
nginxdata:
driver: local

2
flaskapp/install.sh

@ -0,0 +1,2 @@
#!/bin/bash
sudo docker-compose up -d
Loading…
Cancel
Save