|
|
|
|
|
FROM python:3.9 |
|
|
|
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
USER user |
|
|
ENV PATH="/home/user/.local/bin:$PATH" |
|
|
|
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
COPY --chown=user ./requirements.txt requirements.txt |
|
|
RUN pip install --no-cache-dir --upgrade -r requirements.txt |
|
|
|
|
|
|
|
|
COPY --chown=user . /app |
|
|
|
|
|
|
|
|
RUN python - <<EOF |
|
|
import sqlite3 |
|
|
conn = sqlite3.connect('/app/database.db') |
|
|
cursor = conn.cursor() |
|
|
cursor.execute(''' |
|
|
CREATE TABLE IF NOT EXISTS sessions ( |
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT, |
|
|
user_id INTEGER, |
|
|
start_time TEXT, |
|
|
end_time TEXT, |
|
|
script_code TEXT, |
|
|
rating INTEGER, |
|
|
comments TEXT, |
|
|
session_type TEXT, |
|
|
duration INTEGER |
|
|
) |
|
|
''') |
|
|
cursor.execute(''' |
|
|
CREATE TABLE IF NOT EXISTS users ( |
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT, |
|
|
username TEXT UNIQUE, |
|
|
password TEXT, |
|
|
is_admin INTEGER DEFAULT 0 |
|
|
) |
|
|
''') |
|
|
cursor.execute(''' |
|
|
CREATE TABLE IF NOT EXISTS tasks ( |
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT, |
|
|
user_id INTEGER, |
|
|
description TEXT, |
|
|
completed INTEGER DEFAULT 0 |
|
|
) |
|
|
''') |
|
|
cursor.execute(''' |
|
|
CREATE TABLE IF NOT EXISTS settings ( |
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT, |
|
|
user_id INTEGER, |
|
|
setting_name TEXT, |
|
|
setting_value TEXT, |
|
|
UNIQUE(user_id, setting_name) |
|
|
) |
|
|
''') |
|
|
cursor.execute(''' |
|
|
CREATE TABLE IF NOT EXISTS admin_settings ( |
|
|
setting_name TEXT PRIMARY KEY, |
|
|
setting_value INTEGER |
|
|
) |
|
|
''') |
|
|
default_settings = [ |
|
|
('sound_enabled', 1), |
|
|
('notifications_enabled', 1), |
|
|
('dark_mode_enabled', 1), |
|
|
('task_manager_enabled', 1), |
|
|
('statistics_enabled', 1) |
|
|
] |
|
|
cursor.executemany('INSERT OR IGNORE INTO admin_settings (setting_name, setting_value) VALUES (?, ?)', default_settings) |
|
|
conn.commit() |
|
|
conn.close() |
|
|
EOF |
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:7860", "app:app"] |