Сбой развертывания Django elastic beanstalk CLI после добавления файлов .env в gitignore

Я новичок в Django/EB/Git и работал над проектом django и успешно разделил свои настройки и разделил .env файлы для разработки и производства, которые все работают как ожидалось и развернуты - см. следующую структуру проекта:

Структура проекта

project root
    myapp
        settings
            __init__
            base.py
            dev.py
            prod.py
.env.dev
.env.prod
.gitignore
manage.py
requiremnts.txt

Однако, как только я добавил свои файлы .env в файл .gitignore, я получил следующую ошибку с развертыванием в журналах eb (cfn-init-cmd.log):

.gitignore

# Elastic Beanstalk Files
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml
.env.dev
.env.prod

Ошибка: eb logs (cfn-init-cmd.log) FileNotFoundError: [Errno 2] Нет такого файла или каталога: '.env.prod'

Если я удалю .env.prod из файла .gitignore, то мой проект успешно развернется.

Более того, я читал в Интернете, что это может быть связано с тем, что я git add и comitting файл .env.prod в репо, однако, я полагаю, что я также исключил git add/commit, когда я начал заново и повторно создал git репо со следующей командой (команды запущены на локальном проекте):

git add --all -- :!.env.dev :!.env.prod
git commit -m "Initial commit"

Последующие:

eb deploy myproject-env

Смотрите мой файл конфигурации .ebextensions следующим образом:

.ebextensions/django.config

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: myproject.wsgi:application
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: "myproject.settings.prod"
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    "/static": "static/"
packages:
  yum:
    python3-devel: []
    mariadb-devel: []
container_commands:
  01_collectstatic:
    command: "source /var/app/venv/staging-LQM1lest/bin/activate && python manage.py collectstatic --noinput"
  02_migrate:
    command: "source /var/app/venv/staging-LQM1lest/bin/activate && python manage.py migrate --noinput"
    leader_only: true

Я не был уверен, должен ли я добавлять какие-либо команды git в конфигурацию .ebextensions, но предположил, что это просто должно быть сделано в локальном git-репозитории, а затем отправлено на github, я также попробовал развертывание с codecommit и без него, но это ничего не изменило.

Я потратил около недели на то, чтобы разобраться во всем этом и наконец смог развернуть, и это, как я полагаю, должно было быть самым последним шагом, добавляющим .env файлы в .gitignore файл, я просто не уверен, что я упустил или сделал что-то неправильно с git repo.

Буду очень признателен за любую помощь/руководство по этому вопросу, заранее спасибо.

Elastic beanstalk использует файл .gitignore, если файл .ebignore не существует. Таким образом, вы можете использовать оба файла для управления файлами.

AWS doc говорит:

Вы можете указать EB CLI игнорировать определенные файлы в каталоге вашего проекта добавив в каталог файл .ebignore. Этот файл работает подобно файлу .gitignore.

...

Если .ebignore отсутствует, а .gitignore присутствует, EB CLI игнорирует файлы, указанные в .gitignore. Если .ebignore присутствует, EB CLI не читает .gitignore.

.

Когда присутствует .ebignore, EB CLI не использует команды git для создания вашего пакета исходных текстов. Это означает, что EB CLI игнорирует файлы указанные в .ebignore, и включает все остальные файлы. В частности, он включает нефиксированные исходные файлы.

Вернуться на верх