28 августа 2023 Python Docker Django
Задача, извлеч значение настроек запущенного контейнера Django.
Например, необходимо сбросить локальный кешь Django, настройки этого кеша находятся в settings.py файле в словаре
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
"LOCATION": "/var/tmp/django_cache-{}".format(SITE_PREFIX),
"TIMEOUT": 360,
"OPTIONS": {
"MAX_ENTRIES": 1000
}
},
"redis": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": REDIS_LOCATION,
"OPTIONS": {
"CONNECTION_POOL_KWARGS": {"max_connections": 100}
}
},
}
В данном случае необходимо извлеч значение CACHES -> default -> LOCATION
Если Django запущено в контейнере то извлечь это значение можно вот таким образом
docker-compose exec -e DJANGO_SETTINGS_MODULE=centrsvet.settings django poetry run python -c 'from django.conf import settings;print(settings.CACHES["default"]["LOCATION"])'
/var/tmp/django_cache-T1
Представленная команда состоит из целого ряда компонентов
- docker-compose exec django — обращение виртуальной среде контейнера с Django
- -e DJANGO_SETTINGS_MODULE=centrsvet.settings — передача переменной окружения необходимой для корректной загрузки Django
- poetry run python -c — запуск Django в контесте менеджера проекта poetry
- from django.conf import settings;print(settings.CACHES["default"]["LOCATION"]) — запуск python команды импортирующей настройки и отображающий необходимый параметр