diff --git a/backend/backend/settings.py b/backend/backend/settings.py index 1d09378..d1c216f 100644 --- a/backend/backend/settings.py +++ b/backend/backend/settings.py @@ -114,7 +114,7 @@ WSGI_APPLICATION = 'backend.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': BASE_DIR / 'db.sqlite3', + 'NAME': os.environ.get('TOOLSHED_DB_PATH', BASE_DIR / 'db.sqlite3'), } } @@ -155,7 +155,7 @@ USE_TZ = True STATIC_ROOT = 'staticfiles' STATIC_URL = '/static/' -MEDIA_ROOT = 'userfiles' +MEDIA_ROOT = os.environ.get('TOOLSHED_USERFILES_PATH', 'userfiles') MEDIA_URL = '/media/' # Default primary key field type diff --git a/backend/configure.py b/backend/configure.py index ee26cac..92338eb 100755 --- a/backend/configure.py +++ b/backend/configure.py @@ -183,7 +183,11 @@ def testdata(): import django django.setup() - if os.path.exists('testdata.py'): + testdata_path = os.environ.get('TOOLSHED_SETUP_PATH', 'testdata.py') + if os.path.exists(testdata_path): + if testdata_path != 'testdata.py': + import sys + sys.path.append(os.path.dirname(testdata_path)) from testdata import create_test_data create_test_data() else: diff --git a/deploy/dev/Dockerfile.backend b/deploy/dev/Dockerfile.backend index d83b688..1134aba 100644 --- a/deploy/dev/Dockerfile.backend +++ b/deploy/dev/Dockerfile.backend @@ -11,6 +11,7 @@ WORKDIR /code # Install dependencies COPY requirements.txt /code/ RUN pip install --no-cache-dir -r requirements.txt +RUN touch /mnt/db.sqlite3 && touch /mnt/testdata.py && mkdir /mnt/userfiles # Run the application CMD ["sh", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:8000 --insecure"] diff --git a/deploy/docker-compose.override.yml b/deploy/docker-compose.override.yml index cb3cdd3..6d542d7 100644 --- a/deploy/docker-compose.override.yml +++ b/deploy/docker-compose.override.yml @@ -5,12 +5,16 @@ services: build: context: ../backend/ dockerfile: ../deploy/dev/Dockerfile.backend + environment: + TOOLSHED_DB_PATH: /mnt/db.sqlite3 + TOOLSHED_USERFILES_PATH: /mnt/userfiles + TOOLSHED_SETUP_PATH: /mnt/testdata.py volumes: - ../backend:/code - ../deploy/dev/instance_a/a.env:/code/.env - - ../deploy/dev/instance_a/testdata.py:/code/testdata.py - - ../deploy/dev/instance_a/a.sqlite3:/code/db.sqlite3 - - ../deploy/dev/instance_a/userfiles:/code/userfiles + - ../deploy/dev/instance_a/testdata.py:/mnt/testdata.py + - ../deploy/dev/instance_a/a.sqlite3:/mnt/db.sqlite3 + - ../deploy/dev/instance_a/userfiles:/mnt/userfiles expose: - 8000 command: bash -c "python configure.py; python configure.py testdata; python manage.py runserver 0.0.0.0:8000 --insecure" @@ -19,12 +23,16 @@ services: build: context: ../backend/ dockerfile: ../deploy/dev/Dockerfile.backend + environment: + TOOLSHED_DB_PATH: /mnt/db.sqlite3 + TOOLSHED_USERFILES_PATH: /mnt/userfiles + TOOLSHED_SETUP_PATH: /mnt/testdata.py volumes: - ../backend:/code - ../deploy/dev/instance_b/b.env:/code/.env - - ../deploy/dev/instance_b/testdata.py:/code/testdata.py - - ../deploy/dev/instance_b/b.sqlite3:/code/db.sqlite3 - - ../deploy/dev/instance_b/userfiles:/code/userfiles + - ../deploy/dev/instance_b/testdata.py:/mnt/testdata.py + - ../deploy/dev/instance_b/b.sqlite3:/mnt/db.sqlite3 + - ../deploy/dev/instance_b/userfiles:/mnt/userfiles expose: - 8000 command: bash -c "python configure.py; python configure.py testdata; python manage.py runserver 0.0.0.0:8000 --insecure"