При установке суперсета, может вылезти ошибка, которая будет говорить о том, что необходимо поменять SECRET_KEY, так как стандартный сикрет кей, какой-то не такой.
Мой случай — это установка Seuperset`a с помощью Docker на WSL. Что значит, что у меня есть Docker Desktop, через который я могу смотреть контейнеры, образы.
В официальной сводке, говориться следующее:
«To configure your application, you need to create a file superset_config.py and add it to your PYTHONPATH. If your application was installed using docker-compose an alternative configuration is required.»
Для неподкованного специалиста, эта фраза может вызвать приступы злости и агрессии, так как содержит в себе около нуля полезной информации. Тем не менее, я разобрался, че надо делать😉
Во-первых, по умолчанию в скачиваемом приложении Superset`a нет созданного файла superset_config.py. Значит его, необходимо создать у себя на компьютере (где ни будь с незамысловатым путем к файлу) и указать в нем следующее:
# Your App secret key
SECRET_KEY = 'W182LSxE8iphf5M2CUhDz2h521m1ce61PAWgAs6/Xk8MsScCXZfSuyH'
Сам код можно получить, сгенерировав его в консоли командой
команда
Во-вторых, необходимо положить этот файл superset_config.py в папку PYTHONPATH, которая развернута у нас виртуально и находится в папке /app виртуального нашего суперсетика.
Это значит, что в скачанный image мы никак не попадем, и из него надо сделать полноценный контейнер, в котором уже будет возможность вносить изменения. Запускаем image
В поднятом контейнере мы ожидаемо получим WARNING
Любоваться этой ошибкой мы можем как в консоли, так и в Docker Desktop. Внутри же Docker Desktop мы можем увидеть файловую систем поднятого контейнера:
Здесь же видим, что PYTHONPATH пустая папка, в которой ничего нет. К сожалению, при ПКМ на мышке, мы можем импортировать только папки, но не файлы.
Поэтому открываем консоль (в пуске CMD), далее запускаем WSL. Определяем сове местонахождение командой PWD:
Узнаем ID запущенного контейнера командой docker ps:
Уже само ID используем в следующей команде:
docker cp /mnt/c/Users/user/SUP/superset_config.py a4bd3b1c68f4:/app/pythonpath
В команде прописываем наш путь до файла superset_config.py. Сама команда говорит, что копируем указанный файл в нужную нам папку, которая лежит в контейнере, ID которого мы указываем.
Получаем надпись об успешной операции:
Также, можно в логах докера увидеть, что мы вылечили нашу проблему:
В-третьих, можем увидеть, уже новые ошибки, или еще что-то, связанное например с EXPLORE_FORM_DATA_CACHE_CONFIG или FILTER_STATE_CACHE_CONFIG — но по большому счету, решается все точно также, как описано выше. Хотя можно еще проще, так как данные предупреждения относятся к config.py к которому у нас есть доступ непосредственно из Docker Desktop.
Что еще?
Пока искал, как ввести этот секретный ключ, раскопал много сопутствующей информации. Сомневаюсь, что она будет полезна, но я ее сюда положу, на случай, если вдруг понадобиться.
- Вот так, можно скопировать файлы из контейнера, себе на локальный диск (в папку или куда захочешь)
docker cp a4bd3b1c68f4:/app /mnt/c/Users/user/SUP
- Как попасть вовнутрь Image?
docker run -it apache/superset sh
apache/superset — название Image (именно название), и тут уже можно наблюдать, что у нас есть
- Как попасть вовнутрь Container?
docker exec -it 6cf2e065a5fe /bin/bash
6cf2e065a5fe в данном случае ID контейнера
- pwd — выводит то, где мы находимся
cat
— просмотр файла внутри консоли- Вот так установить читалку файлов
sudo apt-get update
sudo apt-get install nano
- https://superset.apache.org/docs/security/ — про безопасность
- https://superset.apache.org/docs/installation/cache/ — про кэш