mayton2019, добавлю, что логи в системе нужно писать и до того, как это внешнее хранилище будет смонтировано. Не говоря уже о disaster-сценарии, когда оно отвалится кратковременно или надолго.
"Реестр минсвязи" - это самое дурацкое из требований. Туда попадают только те, кто хочет получать бабло от бюджета, и основная деятельность значительной части контор в нём - прорваться в конкурсах через формальный фильтр и получить финансирование, а не достичь качественного успеха на рынке. Ничего этот реестр не гарантирует.
Это не совсем так. Можно сделать запрос с вычислением расстояния по теореме Пифагора (лучше только сначала градусы перевести в меркаторовские метры, иначе чем севернее, тем хуже будет работать такая метрика), можно даже какими-то индексами это оптимизировать. Но в целом, конечно, postgis может существенно улучшить решение этой задачи.
WSGlebKavash, там только comp-lzo и без adaptive, параметра compress вообще нет. Лучше сделать одинаково, потому что фиг его знает, как оно не понимает друг друга при разных комбинациях параметров.
Digi3057, бот в режиме поллинга крутит внутри себя цикл, и django в режиме runserver крутит внутри себя цикл. Два цикла в одном приложении просто так сделать нельзя.
Можно, конечно, накрутить многопоточность, но правильнее не делать два цикла в одном приложении, а поступить, как советуют: или два цикла в разных приложениях, или пусть бот будет работать на вебхуках, которые также обслуживаются django (я тут приводил пример https://qna.habr.com/q/1240106 такого)
Zo0meeer, ну вот один из возможных вариантов причины был что эти сообщения вызывают исключение. Убирать текст имело смысл не до конца, оставив там хотя бы звёздочек.
duselguy, systemd-resolved это нормально, тем более что он слушается на 127.0.0.53 и снаружи недоступен. А kdeconnectd вероятно какое-то средство коммуникации для KDE, судя по выставленному наружу порту - коммуникации по сети.
Лучше идти не от требований к движку, а от исходной задачи. Например, требование невозможности скачивать видео намекает на то, что доступ к этому сайту будет продаваться. Так что это будет? Средство торговли знаниями или средство хранения и накопления знаний? Эти задачи уже сами по себе разные, и решение их тоже может отличаться.
akhadovkarim, нет, ни фига не "чётка". В python есть более удобные средства перебора списка, чем итерация по индексу.
Ну и общая проблема приведённого кода в том, что на каждой итерации цикла значение x перезатирает предыдущее, вместо добавления к предыдущим значениям. Можно было бы сделать как-то так:
x = ""
for row in data['rows']:
x += row['country']+' '+row['country_code']+'\n'
Или даже так, ещё короче:
x = "\n".join(row['contry']+' '+row['country_code'] for row in data['rows'])
(Маленькая разница: во втором случае не будет \n в самом конце строки)
Alexej Belkin, да я и говорю что база не смогла взлететь.
Базу да, придётся залить заново. Например, можно засунуть её дамп в каталог db, зайти внутрь контейнера с помощью docker exec и влить этот дамп (каталог db уже прокинут внутрь контейнер).
Не знаю что такое adminer, но если это тулза администрирования базы, то может через неё можно заливать базу?
Alexej Belkin, так делать нельзя. Этот mkdir ничего не создаёт и запускается не на хосте, а в контейнере.
Содержимое command передаётся как аргумент entrypoint контейнера. В простейших случаях entrypoint пустой и команда передаётся в shell системы внутри контейнера. Но у pg, скорее всего, там какой-нибудь скрипт, который неясно как на это отреагирует, может игнорит, а может падает.
Хорошо бы посмотреть в docker ps -a запустился ли этот контейнер вообще нормально.
Что касается создания каталога, то он автоматически будет создан при создании контейнера, если указан в volumes в docker-compose, если не существует. Создавать его явно чаще всего не имеет никакого смысла (кроме случае, когда туда заранее закидываются какие-то данные или если внутри контейнера процесс запущен не из-под root и у него нет доступа к автосозданному каталогу).
И я бы рекомендовал убрать container_name из файла. Без каких-то специальных причин его лучше не использовать.