diff --git a/.gitignore b/.gitignore index 0269939..db73d22 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,6 @@ cython_debug/ # Remove dockerfile generated files Caddy/data/ Caddy/config/ + +# Remove Highscore-Server generated files +Highscore-Server/data/ \ No newline at end of file diff --git a/Highscore-Server/Dockerfile b/Highscore-Server/Dockerfile index 21b2835..558ec76 100644 --- a/Highscore-Server/Dockerfile +++ b/Highscore-Server/Dockerfile @@ -8,8 +8,7 @@ WORKDIR /data COPY requirements.txt requirements.txt RUN pip install -r requirements.txt -RUN mkdir /highscore -COPY /highscore /highscore -WORKDIR /highscore +RUN mkdir /storage +COPY /highscore/ . CMD ["gunicorn", "--bind", "highscore:8080", "server:app"] diff --git a/Highscore-Server/highscore/config.py b/Highscore-Server/highscore/config.py index c49a279..993c955 100644 --- a/Highscore-Server/highscore/config.py +++ b/Highscore-Server/highscore/config.py @@ -2,3 +2,6 @@ SECRET_KEY = 'dev' SQLALCHEMY_DATABASE_URI = 'sqlite:///db.sqlite' SQLALCHEMY_TRACK_MODIFICATIONS = False + +MIGRATION_DIR = '/data/storage/migrations' +INSTANCE_DIR = '/data/storage/instance' \ No newline at end of file diff --git a/Highscore-Server/highscore/server.py b/Highscore-Server/highscore/server.py index 989d5c3..be0fe64 100644 --- a/Highscore-Server/highscore/server.py +++ b/Highscore-Server/highscore/server.py @@ -1,18 +1,24 @@ +import os + from flask import Flask from flask_migrate import init as migrate_init from extensions import db, migrate, cache +from config import MIGRATION_DIR, INSTANCE_DIR from views import blueprint - -app = Flask(__name__) +app = Flask(__name__, instance_path=INSTANCE_DIR) app.config.from_pyfile('config.py') db.init_app(app) -migrate.init_app(app, db) +migrate.init_app(app, db, directory=MIGRATION_DIR) cache.init_app(app) -with app.app_context(): - db.create_all() - migrate_init() +if not os.path.exists(os.path.join(INSTANCE_DIR, 'db.sqlite')): + with app.app_context(): + db.create_all() + +if not os.path.exists(MIGRATION_DIR): + with app.app_context(): + migrate_init(directory=MIGRATION_DIR) app.register_blueprint(blueprint) diff --git a/docker-compose.yml b/docker-compose.yml index 8991257..e3753e4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,5 @@ version: "3.9" + services: caddy: image: caddy:alpine @@ -11,7 +12,8 @@ services: - ./Caddy/config:/config links: - highscore + highscore: build: ./Highscore-Server volumes: - - ./Highscore-Server/data:/data + - ./Highscore-Server/data:/data/storage