diff --git a/Dockerfile b/Dockerfile index 19c6f8a..4b97e93 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,13 +47,13 @@ COPY --chown=root:root --chmod=755 assets ./assets # Copy entrypoint sctipt and SQLite database COPY --chown=root:root --chmod=755 scripts/entrypoint.sh ./entrypoint.sh -COPY --chown=root:root --chmod=755 sqlite3-db ./docker-compose +COPY --chown=root:root --chmod=755 storage ./docker-compose # Create non-root user and make volume mount point writable RUN groupadd --system fastapi && \ adduser --system --ingroup fastapi --disabled-password --gecos '' fastapi && \ - mkdir -p /sqlite3-db && \ - chown fastapi:fastapi /sqlite3-db + mkdir -p /storage && \ + chown fastapi:fastapi /storage # Drop privileges USER fastapi diff --git a/database/player_database.py b/database/player_database.py index dbe96b5..404871a 100644 --- a/database/player_database.py +++ b/database/player_database.py @@ -8,8 +8,8 @@ from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker, declarative_base -database_file_path = os.getenv("DATABASE_FILE_PATH", "./sqlite3-db/players-sqlite3.db") -DATABASE_URL = f"sqlite+aiosqlite:///{database_file_path}" +storage_path = os.getenv("STORAGE_PATH", "./storage/players-sqlite3.db") +DATABASE_URL = f"sqlite+aiosqlite:///{storage_path}" logger = logging.getLogger("uvicorn") logging.getLogger("sqlalchemy.engine.Engine").handlers = logger.handlers diff --git a/docker-compose.yml b/docker-compose.yml index 71f4d58..b772932 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,11 +8,11 @@ services: ports: - "9000:9000" volumes: - - sqlite3-db:/sqlite3-db/ + - storage:/storage/ environment: - PYTHONUNBUFFERED=1 - - DATABASE_FILE_PATH=/sqlite3-db/players-sqlite3.db + - STORAGE_PATH=/storage/players-sqlite3.db restart: unless-stopped volumes: - sqlite3-db: + storage: diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh index 642f010..3ab4944 100644 --- a/scripts/entrypoint.sh +++ b/scripts/entrypoint.sh @@ -1,19 +1,19 @@ #!/bin/bash set -e -IMAGE_DATABASE_FILE_PATH="/app/docker-compose/players-sqlite3.db" -VOLUME_DATABASE_FILE_PATH="/sqlite3-db/players-sqlite3.db" +IMAGE_STORAGE_PATH="/app/docker-compose/players-sqlite3.db" +VOLUME_STORAGE_PATH="/storage/players-sqlite3.db" echo "✔ Starting container..." -if [ ! -f "$VOLUME_DATABASE_FILE_PATH" ]; then +if [ ! -f "$VOLUME_STORAGE_PATH" ]; then echo "⚠️ No existing database file found in volume." - if [ -f "$IMAGE_DATABASE_FILE_PATH" ]; then + if [ -f "$IMAGE_STORAGE_PATH" ]; then echo "Copying database file to writable volume..." - cp "$IMAGE_DATABASE_FILE_PATH" "$VOLUME_DATABASE_FILE_PATH" - echo "✔ Database initialized at $VOLUME_DATABASE_FILE_PATH" + cp "$IMAGE_STORAGE_PATH" "$VOLUME_STORAGE_PATH" + echo "✔ Database initialized at $VOLUME_STORAGE_PATH" else - echo "⚠️ Database file missing at $IMAGE_DATABASE_FILE_PATH" + echo "⚠️ Database file missing at $IMAGE_STORAGE_PATH" exit 1 fi else diff --git a/sqlite3-db/players-sqlite3.db b/storage/players-sqlite3.db similarity index 100% rename from sqlite3-db/players-sqlite3.db rename to storage/players-sqlite3.db