Skip to content
Snippets Groups Projects
Commit 20cc1576 authored by Ethan-clay03's avatar Ethan-clay03
Browse files

Create SQL docker and flask docker containers

parent a95b5760
No related branches found
No related tags found
No related merge requests found
FLASK_ENV=development
\ No newline at end of file
DEVELOPMENT_MODE=True
DATABASE_HOST=localhost
DATABASE_USER=ethan2clay
DATABASE_PASSWORD=Ethan2claY10+$++
DATABASE_NAME=ethan2clay_prj
\ No newline at end of file
FROM python:3.10-alpine AS builder
COPY . /flask
WORKDIR ./flask
RUN pip3 install --no-cache-dir -r requirements.txt
ENV FLASK_APP=app:create_app
CMD ["flask", "run", "--host=0.0.0.0", "--port=5000"]
\ No newline at end of file
......@@ -4,6 +4,8 @@ from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from dotenv import load_dotenv
import os
db = SQLAlchemy()
migrate = Migrate()
......@@ -12,15 +14,19 @@ def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
#ONLY TURN ON FOR DEBUGGING
#Only enabled when DEVELOPMENT_MODE in .env is set to true
development_mode = os.getenv("DEVELOPMENT_MODE")
if (development_mode.lower() == 'true'):
app.config['DEBUG'] = True
# Database connection , TO DO: Encrypt and move into .env fix where connection only works when remoted into database
db_user = 'ethan2clay'
db_password = 'Ethan2claY10+$++'
db_name = 'ethan2clay_prj'
load_dotenv()
db_host = os.getenv("DATABASE_HOST")
db_user = os.getenv("DATABASE_USER")
db_password = os.getenv("DATABASE_PASSWORD")
db_name = os.getenv("DATABASE_NAME")
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{db_user}:{db_password}@localhost/{db_name}".format(db_user=db_user, db_password=db_password, db_name=db_name)
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{db_user}:{db_password}@{db_host}/{db_name}".format(db_user=db_user, db_password=db_password, db_name=db_name)
db.init_app(app)
#Run Flask migrations if any available
......
services:
flask:
build:
context: .
dockerfile: Dockerfile
stop_signal: SIGINT
ports:
- '5000:5000'
volumes:
- ./app:/app
environment:
- FLASK_APP=app:create_app
- DATABASE_HOST=database
- DATABASE_USER=user
- DATABASE_PASSWORD=userpassword
- DATABASE_NAME=mydatabase
depends_on:
- database
database:
image: mysql:8.3
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydatabase
MYSQL_USER: user
MYSQL_PASSWORD: userpassword
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
\ No newline at end of file
Flask>=3.0.0
flask_sqlalchemy
flask_migrate
pymysql
python-dotenv
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment