#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 960B 0.0s done #1 DONE 0.0s #2 [internal] load metadata for docker.io/library/node:24 #2 DONE 0.2s #3 [internal] load metadata for docker.io/library/python:3.13 #3 DONE 0.4s #4 [internal] load .dockerignore #4 transferring context: 65B done #4 DONE 0.0s #5 [frontend 1/7] FROM docker.io/library/node:24@sha256:050bf2bbe33c1d6754e060bec89378a79ed831f04a7bb1a53fe45e997df7b3bb #5 DONE 0.0s #6 [stage-1 1/12] FROM docker.io/library/python:3.13@sha256:4f2d437a6b02de3c9f9aab4b90ba4bc50bd8ad825c5640c28a558c5639f6ded1 #6 resolve docker.io/library/python:3.13@sha256:4f2d437a6b02de3c9f9aab4b90ba4bc50bd8ad825c5640c28a558c5639f6ded1 0.0s done #6 DONE 0.0s #7 [internal] load build context #7 transferring context: 16.35kB done #7 DONE 0.0s #8 [frontend 3/7] COPY package.json /app/package.json #8 CACHED #9 [frontend 2/7] WORKDIR /app #9 CACHED #10 [stage-1 2/12] WORKDIR /app #10 CACHED #11 [frontend 4/7] RUN npm install #11 CACHED #12 [stage-1 3/12] COPY requirements.txt /app/requirements.txt #12 DONE 0.0s #13 [frontend 5/7] COPY . /app #13 DONE 0.1s #14 [frontend 6/7] RUN sed -i 's/baseURL: .*/baseURL: "\/api",/' src/services/api.js #14 DONE 0.3s #15 [stage-1 4/12] RUN pip install -r requirements.txt #15 2.283 Collecting django==6.0.2 (from -r requirements.txt (line 1)) #15 2.385 Downloading django-6.0.2-py3-none-any.whl.metadata (3.9 kB) #15 2.439 Collecting djangorestframework==3.16.1 (from -r requirements.txt (line 2)) #15 2.458 Downloading djangorestframework-3.16.1-py3-none-any.whl.metadata (11 kB) #15 2.564 Collecting psycopg2-binary==2.9.11 (from -r requirements.txt (line 3)) #15 2.584 Downloading psycopg2_binary-2.9.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB) #15 2.625 Collecting dj-database-url==3.1.1 (from -r requirements.txt (line 4)) #15 2.634 Downloading dj_database_url-3.1.1-py3-none-any.whl.metadata (13 kB) #15 2.696 Collecting gunicorn==25.1.0 (from -r requirements.txt (line 5)) #15 2.712 Downloading gunicorn-25.1.0-py3-none-any.whl.metadata (5.5 kB) #15 2.762 Collecting whitenoise==6.11.0 (from -r requirements.txt (line 6)) #15 2.793 Downloading whitenoise-6.11.0-py3-none-any.whl.metadata (3.7 kB) #15 2.843 Collecting django-cors-headers==4.9.0 (from -r requirements.txt (line 7)) #15 2.863 Downloading django_cors_headers-4.9.0-py3-none-any.whl.metadata (16 kB) #15 2.919 Collecting django-allauth==65.14.3 (from -r requirements.txt (line 8)) #15 2.933 Downloading django_allauth-65.14.3-py3-none-any.whl.metadata (9.2 kB) #15 2.987 Collecting django-filter==25.2 (from -r requirements.txt (line 9)) #15 3.005 Downloading django_filter-25.2-py3-none-any.whl.metadata (5.1 kB) #15 3.054 Collecting asgiref>=3.9.1 (from django==6.0.2->-r requirements.txt (line 1)) #15 3.088 Downloading asgiref-3.11.1-py3-none-any.whl.metadata (9.3 kB) #15 3.121 Collecting sqlparse>=0.5.0 (from django==6.0.2->-r requirements.txt (line 1)) #15 3.136 Downloading sqlparse-0.5.5-py3-none-any.whl.metadata (4.7 kB) #15 3.182 Collecting packaging (from gunicorn==25.1.0->-r requirements.txt (line 5)) #15 3.195 Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB) #15 3.238 Downloading django-6.0.2-py3-none-any.whl (8.3 MB) #15 3.412 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 55.0 MB/s 0:00:00 #15 3.432 Downloading djangorestframework-3.16.1-py3-none-any.whl (1.1 MB) #15 3.449 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 75.6 MB/s 0:00:00 #15 3.470 Downloading psycopg2_binary-2.9.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.2 MB) #15 3.533 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 66.6 MB/s 0:00:00 #15 3.641 Downloading dj_database_url-3.1.1-py3-none-any.whl (9.0 kB) #15 3.664 Downloading gunicorn-25.1.0-py3-none-any.whl (197 kB) #15 3.706 Downloading whitenoise-6.11.0-py3-none-any.whl (20 kB) #15 3.725 Downloading django_cors_headers-4.9.0-py3-none-any.whl (12 kB) #15 3.746 Downloading django_allauth-65.14.3-py3-none-any.whl (1.8 MB) #15 3.808 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 27.8 MB/s 0:00:00 #15 3.827 Downloading django_filter-25.2-py3-none-any.whl (94 kB) #15 3.848 Downloading asgiref-3.11.1-py3-none-any.whl (24 kB) #15 3.873 Downloading sqlparse-0.5.5-py3-none-any.whl (46 kB) #15 3.893 Downloading packaging-26.2-py3-none-any.whl (100 kB) #15 4.048 Installing collected packages: whitenoise, sqlparse, psycopg2-binary, packaging, asgiref, gunicorn, django, djangorestframework, django-filter, django-cors-headers, django-allauth, dj-database-url #15 ... #16 [frontend 7/7] RUN npm run build #16 0.656 #16 0.656 > django-vue@0.2.0 build #16 0.656 > vite build #16 0.656 #16 1.619 vite v7.3.1 building client environment for production... #16 1.767 transforming... #16 3.404 ✓ 101 modules transformed. #16 3.552 rendering chunks... #16 3.709 computing gzip size... #16 3.734 dist/index.html 0.43 kB │ gzip: 0.28 kB #16 3.735 dist/static/RegisterView-CM0WDmfO.css 1.78 kB │ gzip: 0.66 kB #16 3.735 dist/static/ChatView-Dp_io4oH.css 2.17 kB │ gzip: 0.74 kB #16 3.735 dist/static/StudentProfileView-BPp22EGA.css 2.38 kB │ gzip: 0.87 kB #16 3.735 dist/static/TutorProfileView-Cb9eP-F4.css 2.42 kB │ gzip: 0.85 kB #16 3.735 dist/static/index-DGAg4Hgs.css 27.50 kB │ gzip: 6.03 kB #16 3.735 dist/static/requestService-BRO_PTvj.js 0.28 kB │ gzip: 0.20 kB #16 3.735 dist/static/tutorOfferService-vcFObwd5.js 0.35 kB │ gzip: 0.19 kB #16 3.735 dist/static/ForgotPasswordView-DIpEzYUA.js 1.73 kB │ gzip: 0.99 kB #16 3.735 dist/static/ResetPasswordView-AT2kMU19.js 2.02 kB │ gzip: 1.02 kB #16 3.735 dist/static/TutorDashboardView-DtXW7WBs.js 2.29 kB │ gzip: 1.09 kB #16 3.735 dist/static/RequestFormView-3Bu6xeqQ.js 2.90 kB │ gzip: 1.17 kB #16 3.735 dist/static/ChatView-CzIpx7UW.js 2.94 kB │ gzip: 1.55 kB #16 3.735 dist/static/LoginView-LrWZBLbx.js 3.14 kB │ gzip: 1.42 kB #16 3.735 dist/static/MessagesView-DJkV_rQt.js 3.32 kB │ gzip: 1.57 kB #16 3.735 dist/static/RegisterView-Bo2OnKLV.js 3.48 kB │ gzip: 1.66 kB #16 3.735 dist/static/StudentProfileView-CIofuaNS.js 3.80 kB │ gzip: 1.54 kB #16 3.735 dist/static/TutorDetailView-Dxu5ps8P.js 5.58 kB │ gzip: 2.21 kB #16 3.735 dist/static/TutorListView-iO0hDRts.js 5.60 kB │ gzip: 2.03 kB #16 3.735 dist/static/TutorProfileView-CoOQ5t1I.js 6.03 kB │ gzip: 2.17 kB #16 3.735 dist/static/DashboardView-uR9Q1R2j.js 7.68 kB │ gzip: 3.07 kB #16 3.735 dist/static/TutorOfferCreationView-D3LXsTU3.js 7.95 kB │ gzip: 2.66 kB #16 3.735 dist/static/index-CeXcxui4.js 146.80 kB │ gzip: 56.17 kB #16 3.736 ✓ built in 2.05s #16 3.891 npm notice #16 3.891 npm notice New minor version of npm available! 11.12.1 -> 11.14.1 #16 3.891 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.14.1 #16 3.891 npm notice To update run: npm install -g npm@11.14.1 #16 3.891 npm notice #16 DONE 4.0s #15 [stage-1 4/12] RUN pip install -r requirements.txt #15 8.383 #15 8.386 Successfully installed asgiref-3.11.1 dj-database-url-3.1.1 django-6.0.2 django-allauth-65.14.3 django-cors-headers-4.9.0 django-filter-25.2 djangorestframework-3.16.1 gunicorn-25.1.0 packaging-26.2 psycopg2-binary-2.9.11 sqlparse-0.5.5 whitenoise-6.11.0 #15 8.386 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning. #15 8.530 #15 8.530 [notice] A new release of pip is available: 26.0.1 -> 26.1.1 #15 8.530 [notice] To update, run: pip install --upgrade pip #15 DONE 9.0s #17 [stage-1 5/12] COPY . /app #17 DONE 0.0s #18 [stage-1 6/12] RUN sed -i '/django.middleware.clickjacking.XFrameOptionsMiddleware/d' backend/settings/base.py #18 DONE 0.3s #19 [stage-1 7/12] COPY --from=frontend /app/dist /app/dist #19 DONE 0.0s #20 [stage-1 8/12] RUN mv build.html dist/static/build.html #20 DONE 0.3s #21 [stage-1 9/12] RUN python manage.py migrate #21 0.655 Traceback (most recent call last): #21 0.657 File "/app/manage.py", line 22, in #21 0.657 main() #21 0.657 ~~~~^^ #21 0.657 File "/app/manage.py", line 18, in main #21 0.657 execute_from_command_line(sys.argv) #21 0.657 ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line #21 0.657 utility.execute() #21 0.657 ~~~~~~~~~~~~~~~^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/core/management/__init__.py", line 437, in execute #21 0.657 self.fetch_command(subcommand).run_from_argv(self.argv) #21 0.657 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/core/management/base.py", line 412, in run_from_argv #21 0.657 parser = self.create_parser(argv[0], argv[1]) #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/core/management/base.py", line 375, in create_parser #21 0.657 self.add_arguments(parser) #21 0.657 ~~~~~~~~~~~~~~~~~~^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/core/management/commands/migrate.py", line 45, in add_arguments #21 0.657 choices=tuple(connections), #21 0.657 ~~~~~^^^^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/utils/connection.py", line 73, in __iter__ #21 0.657 return iter(self.settings) #21 0.657 ^^^^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/utils/functional.py", line 47, in __get__ #21 0.657 res = instance.__dict__[self.name] = self.func(instance) #21 0.657 ~~~~~~~~~^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/utils/connection.py", line 45, in settings #21 0.657 self._settings = self.configure_settings(self._settings) #21 0.657 ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/db/utils.py", line 151, in configure_settings #21 0.657 databases = super().configure_settings(databases) #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/utils/connection.py", line 50, in configure_settings #21 0.657 settings = getattr(django_settings, self.settings_name) #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/conf/__init__.py", line 75, in __getattr__ #21 0.657 self._setup(name) #21 0.657 ~~~~~~~~~~~^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/conf/__init__.py", line 62, in _setup #21 0.657 self._wrapped = Settings(settings_module) #21 0.657 ~~~~~~~~^^^^^^^^^^^^^^^^^ #21 0.657 File "/usr/local/lib/python3.13/site-packages/django/conf/__init__.py", line 162, in __init__ #21 0.657 mod = importlib.import_module(self.SETTINGS_MODULE) #21 0.657 File "/usr/local/lib/python3.13/importlib/__init__.py", line 88, in import_module #21 0.657 return _bootstrap._gcd_import(name[level:], package, level) #21 0.657 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #21 0.657 File "", line 1395, in _gcd_import #21 0.657 File "", line 1360, in _find_and_load #21 0.657 File "", line 1331, in _find_and_load_unlocked #21 0.657 File "", line 935, in _load_unlocked #21 0.657 File "", line 1023, in exec_module #21 0.657 File "", line 488, in _call_with_frames_removed #21 0.657 File "/app/backend/settings/base.py", line 12, in #21 0.657 from dotenv import load_dotenv #21 0.657 ModuleNotFoundError: No module named 'dotenv' #21 ERROR: process "/bin/sh -c python manage.py migrate" did not complete successfully: exit code: 1 ------ > [stage-1 9/12] RUN python manage.py migrate: 0.657 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 0.657 File "", line 1395, in _gcd_import 0.657 File "", line 1360, in _find_and_load 0.657 File "", line 1331, in _find_and_load_unlocked 0.657 File "", line 935, in _load_unlocked 0.657 File "", line 1023, in exec_module 0.657 File "", line 488, in _call_with_frames_removed 0.657 File "/app/backend/settings/base.py", line 12, in 0.657 from dotenv import load_dotenv 0.657 ModuleNotFoundError: No module named 'dotenv' ------ 2 warnings found (use docker --debug to expand):  - SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "DJANGO_SUPERUSER_PASSWORD") (line 12) - JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 26) Dockerfile:22 -------------------- 20 | COPY --from=frontend /app/dist /app/dist 21 | RUN mv build.html dist/static/build.html 22 | >>> RUN python manage.py migrate 23 | RUN python manage.py loaddata ./backend/*/*fixture*/*.json; exit 0 24 | RUN python manage.py createsuperuser --no-input -------------------- ERROR: failed to build: failed to solve: process "/bin/sh -c python manage.py migrate" did not complete successfully: exit code: 1