Add docker compose build file

This commit is contained in:
pstruebi
2024-06-23 21:20:03 +02:00
parent 41e8a75d5a
commit 2dfd6fbbc8
8 changed files with 74 additions and 7 deletions

14
Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
# Use an official Python runtime as a parent image
FROM python:3.10
# Set the working directory in the container to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 8000

View File

@@ -1,7 +1,7 @@
class DefaultConfig: class DefaultConfig:
DEBUG = False DEBUG = False
TESTING = False TESTING = False
DATABASE_URI = "users.db" DATABASE_URI = "./database/users.db"
SECRET_KEY = SECURITY_PASSWORD_SALT='default' SECRET_KEY = SECURITY_PASSWORD_SALT='default'
CONFIRMATATION_EMAIL_ADD=None CONFIRMATATION_EMAIL_ADD=None
@@ -11,7 +11,7 @@ class Config(DefaultConfig):
class ProductionConfig(Config): class ProductionConfig(Config):
SECRET_KEY = '\xacI4\x077\x16?Q\xb4")\xdb\x066\x95\x11i\x0b\x0c&\xb6rP\'' SECRET_KEY = '\xacI4\x077\x16?Q\xb4")\xdb\x066\x95\x11i\x0b\x0c&\xb6rP\''
SECURITY_PASSWORD_SALT = '>\xe3\x9bz\xfd\xbc[\xe22\xcfK\xca\x88!\xd8\xd5,\xd0\x95\x0c\x02\xad\xfa\x9d' SECURITY_PASSWORD_SALT = '>\xe3\x9bz\xfd\xbc[\xe22\xcfK\xca\x88!\xd8\xd5,\xd0\x95\x0c\x02\xad\xfa\x9d'
DATABASE_URI = '/home/site/wwwroot/users.db' # For azure app services. The content under wwwroot is durable, unless you delete your app service. DATABASE_URI = './users.db' # For azure app services. The content under wwwroot is durable, unless you delete your app service.
class DevelopmentConfig(Config): class DevelopmentConfig(Config):
CONFIRMATATION_EMAIL_ADD= "struebin.patrick@gmail.com" CONFIRMATATION_EMAIL_ADD= "struebin.patrick@gmail.com"

Binary file not shown.

20
db.py
View File

@@ -42,3 +42,23 @@ def init_db_command():
def init_app(app): def init_app(app):
app.teardown_appcontext(close_db) app.teardown_appcontext(close_db)
app.cli.add_command(init_db_command) app.cli.add_command(init_db_command)
if __name__ == "__main__":
import csv
from datetime import datetime
# Connect to the SQLite database
conn = sqlite3.connect('users.db')
c = conn.cursor()
# Load data from CSV file
with open('users.db.backup.txt', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter='|')
for row in reader:
username, email, password, confirmed, confirmation_date = row[1:] #drop first col
c.execute("INSERT INTO user (username, email, password, confirmed, confirmation_date) VALUES (?, ?, ?, ?, ?)",
(username.strip(), email.strip(), password, int(confirmed), datetime.strptime(confirmation_date, '%Y-%m-%d %H:%M:%S.%f')))
# Commit the changes and close the connection
conn.commit()
conn.close()

14
docker-compose.yaml Normal file
View File

@@ -0,0 +1,14 @@
services:
app:
build: .
ports:
- "8000:8000"
network_mode: host
volumes:
- sqlite-database:/app/database
working_dir: /app
command: sh ./run_production_server.sh
volumes:
sqlite-database:

View File

@@ -1,2 +1,19 @@
flask blinker==1.8.2
msal certifi==2024.6.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
cryptography==42.0.8
Flask==3.0.3
gunicorn==22.0.0
idna==3.7
itsdangerous==2.2.0
Jinja2==3.1.4
MarkupSafe==2.1.5
msal==1.29.0
packaging==24.1
pycparser==2.22
PyJWT==2.8.0
requests==2.32.3
urllib3==2.2.2
Werkzeug==3.0.3

4
run_production_server.sh Normal file
View File

@@ -0,0 +1,4 @@
export FLASK_ENV=production
export CONFIG=config.ProductionConfig
# equivalent to 'from hello import app'
gunicorn 'app:app'

View File

@@ -1,8 +1,6 @@
1|Patrick Strübin|struebin.patrick@gmail.com|pbkdf2:sha256:260000$0XKR2y8Bl5VBJEwi$b466bf14019ea83125ae2b1a13303f04547950311cf5908eb3a64c1b4849513d|1|2022-06-17 09:29:35.589533 1|Patrick Strübin|struebin.patrick@gmail.com|pbkdf2:sha256:260000$0XKR2y8Bl5VBJEwi$b466bf14019ea83125ae2b1a13303f04547950311cf5908eb3a64c1b4849513d|1|2022-06-17 09:29:35.589533
2|Kalle|khstruebin@web.de|pbkdf2:sha256:260000$GHcPS6QHUlSOibT6$4fccef0949cdc64f75c5a609539fd5227ff7b0a53412c6a78bdf2a974a2c0be6|1|2022-06-17 09:39:34.305725
3|Simone|s.m.profus@gmail.com|pbkdf2:sha256:260000$Ze0EmkSUbr9LSIv6$3ef454b54f776c016cccaad4f13f84998807d26234c218bce375ac4f386f1d30|1|2022-06-17 10:46:08.137068 3|Simone|s.m.profus@gmail.com|pbkdf2:sha256:260000$Ze0EmkSUbr9LSIv6$3ef454b54f776c016cccaad4f13f84998807d26234c218bce375ac4f386f1d30|1|2022-06-17 10:46:08.137068
4|Simone|simone.profus@propedal.at|pbkdf2:sha256:260000$67dmLjjR1BoNwbuf$f707d073fbd34ecdee4f4f72f24d69f22880df226cb158cfef45e41402009797|1|2022-09-04 17:28:28.245465 4|Simone|simone.profus@propedal.at|pbkdf2:sha256:260000$67dmLjjR1BoNwbuf$f707d073fbd34ecdee4f4f72f24d69f22880df226cb158cfef45e41402009797|1|2022-09-04 17:28:28.245465
5|Patrick |test@bla.at|pbkdf2:sha256:260000$0r3sjIV5Or8kcBTh$44b2baf22350bebd561d6abcec7bca75aa76d72cfb66cf21d520252c0b506dcd|0|
6|Isabella M|qallen2000@yahoo.fr|pbkdf2:sha256:260000$t93QBWdWmjhdZbGr$f6a92cf8853ca4176d7e425188359587400c9a526743df1ce267400b9fca252a|1|2022-09-14 20:54:34.740235 6|Isabella M|qallen2000@yahoo.fr|pbkdf2:sha256:260000$t93QBWdWmjhdZbGr$f6a92cf8853ca4176d7e425188359587400c9a526743df1ce267400b9fca252a|1|2022-09-14 20:54:34.740235
7|Jesús|jvaz19@hotmail.com|pbkdf2:sha256:260000$6P0XDHrDo1EfVVf6$d98078ee68c4978d5274b3594b42896465fcce878f14d7262d4f9975bdd00ccd|1|2022-09-27 11:55:57.044266 7|Jesús|jvaz19@hotmail.com|pbkdf2:sha256:260000$6P0XDHrDo1EfVVf6$d98078ee68c4978d5274b3594b42896465fcce878f14d7262d4f9975bdd00ccd|1|2022-09-27 11:55:57.044266
9|Maximilian Zahler|damaxl48@gmail.com|pbkdf2:sha256:260000$OO3CektTREvvlXHH$7fde8ba2f46179138dee4d7ebef941d30794a50c7a5b199823dedc87751a0dd1|1|2022-09-18 19:34:22.328920 9|Maximilian Zahler|damaxl48@gmail.com|pbkdf2:sha256:260000$OO3CektTREvvlXHH$7fde8ba2f46179138dee4d7ebef941d30794a50c7a5b199823dedc87751a0dd1|1|2022-09-18 19:34:22.328920