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: