UserWarning на Django-приложении Kubernetes в DigitalOcean

Развертывание приложения Django на кластере K8s в Digital Ocean с помощью рабочего процесса GitHub Actions и этой части

run: |
  export SINGLE_POD_NAME=$(kubectl get pod -l app=django-doapp-web-deployment -o jsonpath="{.items[0].metadata.name}" | tr -d '\r')
  kubectl exec -it $SINGLE_POD_NAME -- bash /app/migrate.sh
  kubectl exec -it $SINGLE_POD_NAME -- bash /app/collectstatic.sh

Хотя он строит большую часть времени, он всегда дает следующее

Невозможно использовать TTY - вход не является терминалом или файлом нужного типа /app/manage.py:21: UserWarning: Not reading /app/.env - it doesn't exist.

.

dotenv.read_dotenv()

Поскольку все еще не ясно, решил проверить журналы pod с

kubectl logs -f [POD_NAME]

Там я вижу эту ошибку

[2022-10-20 04:49:36 +0000] [8] [INFO] Загрузка рабочего с pid: 8 /app/django_doapp/wsgi.py:19: UserWarning: Не читается .env - он не существует. dotenv.read_dotenv(str(ENV_FILE_PATH))

.

Похоже, это указывает на проблему в файле wsgi.py. Мой выглядит следующим образом

import os
import pathlib

import dotenv

from django.core.wsgi import get_wsgi_application

CURRENT_DIR = pathlib.Path(__file__).resolve().parent
BASE_DIR = CURRENT_DIR.parent
ENV_FILE_PATH = BASE_DIR / ".env"

dotenv.read_dotenv(str(ENV_FILE_PATH)) # This is line 19

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_rentals.settings')

application = get_wsgi_application()

Каковы последствия этого и как их решить?


Как это может быть актуально, структура проекта похожа на эту.

Кроме того, .gitignore и .dockerignore начинаются с

.env.prod
.env
.DS_Store
.kube/
Вернуться на верх