diff --git a/nginx-flask-mysql/backend/Dockerfile b/nginx-flask-mysql/backend/Dockerfile
index 5faf0fe..73848ed 100755
--- a/nginx-flask-mysql/backend/Dockerfile
+++ b/nginx-flask-mysql/backend/Dockerfile
@@ -1,5 +1,4 @@
FROM python:3.8-alpine
-ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
diff --git a/nginx-flask-mysql/backend/hello.py b/nginx-flask-mysql/backend/hello.py
index 20f3010..35b6a33 100755
--- a/nginx-flask-mysql/backend/hello.py
+++ b/nginx-flask-mysql/backend/hello.py
@@ -6,7 +6,8 @@ import mysql.connector
passfile = open('/run/secrets/db-password', 'r')
#give db some time to start
-time.sleep(3)
+time.sleep(5)
+
#connect to db
conn = mysql.connector.connect(
user='root',
@@ -15,12 +16,19 @@ conn = mysql.connector.connect(
database='example',
auth_plugin='mysql_native_password'
)
+
passfile.close()
-
+# populate db
cursor = conn.cursor()
+def prepare_db():
+ cursor.execute('DROP TABLE IF EXISTS blog')
+ cursor.execute('CREATE TABLE blog (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255))')
+ cursor.executemany('INSERT INTO blog (id, title) VALUES (%s, %s);', [(i, 'Blog post #%d'% i) for i in range (1,5)])
+ conn.commit()
+prepare_db()
+# server
app = Flask(__name__)
-
@app.route('/')
def listBlog():
cursor.execute('SELECT title FROM blog')
@@ -29,13 +37,6 @@ def listBlog():
response = response + '
' + c[0] + '
'
return response
-def prepare_db():
- cursor.execute('DROP TABLE IF EXISTS blog')
- cursor.execute('CREATE TABLE blog (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255))')
- cursor.executemany('INSERT INTO blog (id, title) VALUES (%s, %s);', [(i, 'Blog post #%d'% i) for i in range (1,5)])
- conn.commit()
-
if __name__ == '__main__':
- prepare_db()
app.run()
diff --git a/nginx-flask-mysql/docker-compose.yaml b/nginx-flask-mysql/docker-compose.yaml
index a30d724..d26721f 100644
--- a/nginx-flask-mysql/docker-compose.yaml
+++ b/nginx-flask-mysql/docker-compose.yaml
@@ -1,27 +1,40 @@
version: "3.7"
services:
- backend:
- build: backend
- secrets:
- - db-password
- ports:
- - 5000:5000
db:
- environment:
- MYSQL_DATABASE: example
- MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db-password
image: mysql:8.0.19
+ command: '--default-authentication-plugin=mysql_native_password'
restart: always
secrets:
- db-password
volumes:
- db-data:/var/lib/mysql
+ networks:
+ - backnet
+ environment:
+ - MYSQL_DATABASE=example
+ - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db-password
+ backend:
+ build: backend
+ restart: always
+ secrets:
+ - db-password
+ ports:
+ - 5000:5000
+ networks:
+ - backnet
+ - frontnet
proxy:
build: proxy
+ restart: always
ports:
- - 8080:80
+ - 80:80
+ networks:
+ - frontnet
volumes:
- db-data: {}
+ db-data:
secrets:
db-password:
file: db/password.txt
+networks:
+ backnet:
+ frontnet: