• Как правильно создать Docker-контейнер?

    @metajiji
    Образ собрали и да и нет. Во первых для облегчения объема используйте python:3-alpine, во вторых сделайте через использование промежуточного образа, а именно 2 раза FROM, в первом будет сборка venv, во втором копирование venv и вашего скрипта. ENTRYPOINT можно не менять и писать имя вашей программы, ее можно закинуть в PATH, например в /usr/local/bin, но это не обязательно.

    А вот что обязательно, так это сохранение данных, которые генерит ваша программа внутри контейнера на диск хоста, а не контейнера, это делается через volume, как написали выше.

    Например, docker run --rm ti -v $(pwd)/data:/data avito_parser_cli "трактор мтз" -t -m 300000 -s 'date' -a

    Ожидается, что программа внутри контейнера сохранит данные в папку /data, а на хосте они будут в $(pwd)/data
    Ответ написан
    Комментировать
  • Как смоделировать задержки в локальной сети?

    @metajiji
    Если речь об управлении через браузер, то в хроме для этого есть кнопки в dev-tools.
    Ответ написан
    Комментировать
  • Как разрабатывать программы с фоновыми задачами?

    @metajiji
    Или использовать менеджер очередей. Например celery в python совместно с rabbitmq или redis зависит от задачи и объема сообщений.
    Ответ написан
    6 комментариев
  • Автодеплой git на сервер?

    @metajiji
    Вам нужен Cd сервис. Continous delivery, реализация, например jenkins, gitlab-ci да любой по вкусу.
    Ответ написан
    Комментировать
  • Как реализовать отказоустойчивость mysql?

    @metajiji
    Haproxy + galera + Xtradb от percona, для деплоя посмотрите на готовые ansible плейбуки.
    Не забываем про critical read в mysql части и "липкие коннекты" в haproxy.
    Кластер минимум 3 годы, чтобы не было split brain, если по феншуям хочется, то 5 лучше нод.
    Ответ написан
  • Можете по-простому объяснить про Docker и как им начать пользоваться?

    @metajiji
    Не супер конечно руководство, но для начала сойдёт: https://habr.com/post/310460/

    Важно усвоить в чем разница image и container, потом осознать почему это одно и тоже:)
    А дальше будет легче.
    Ответ написан
    Комментировать
  • Безопасности ли так делать в php?

    @metajiji
    Лучше это хранить в базе, например redis/memcache или при небольшой нагрузке в sql. В сесии максимум id пользователя.
    Как вы уже заметили при вашем подходе есть проблемы с "перезаходами".
    Ответ написан
    Комментировать
  • Как дать белый IP, linux на VirtualBox?

    @metajiji
    Сеть вашей вм в бридж с реальным интерфейсом хоста. На холсте никаких настроек не делаем.

    Если ваш провайдер выдал вам 1 ИП, а с хоста хочется ходить в интернет, то в виртуалкк добавляем ещё один интерфейс, настраиваем ИП на нем из немаршрутизируемого диапазона - серые ип. Например 10.0.0.2/24, а внутри вм делаем 10.0.0.1/24, затем включаем ip forwarding и настраиваем masquerading(nat) для серой сети.

    Получаем, что виртуалка торчит в интернет белым ИП, а хост через виртуалку ходит в интернет.
    Ответ написан
    Комментировать
  • Как решить ошибку при выполнении "aptitude install"?

    @metajiji
    Aptitude давно уже deprecated, пожалуйста не используйте ее. Используйте apt-get или, если у вас свежая ос просто apt.

    И помните, пакетный менеджер доступен только пользователю root, поэтому повышайте привилегии при помощи su или sudo.
    Ответ написан
    Комментировать
  • Как оптимизировать и резервировать локальную сеть?

    @metajiji
    В центре сети коммутатор L2+ достаточно или как у вас L3. На нем терминируются все клиентские аланы, на нем же заводите по влановому интерфейсу с ip адресом - это будет гетвей для каждой подсети.
    На аэтом же коммутаторе настраиваете DHCP-Relay (l2+ как правило могут) для каждого влана.

    Дальше делаете дефолтный маршрут на ваша роутер, который будет натить все ваши сети.
    На роутере маршруты в ответ на каждый сабнет.
    Если руками лень, делаете динамическую маршрутизацию по вкусу.

    В итоге сети бегут на L3 оттуда либо в соседний влан либо на роутер и в интернет в зависимости от запроса.
    Dhcp-сервер может быть где угодно, ему релей все передаст.

    Если нужно резервирование роутера - покупаете 2 роутер, настраиваете vrrp. Либо делаем 2 маршрута с разными весами - лучше vrrp конечно же.

    Свитч резервируется сложнее и дороже, тут если по простому делаете крон таску которая дампит конфиг, коммитит и рушит в гит репу.
    Ответ написан
    Комментировать
  • Есть ли какой то интерактивный тренажер по sql?

    @metajiji
    PhpMyAdmin в свое время меня неплохо научил писать запросы.
    Буквально мышкой щелкаешь и смотришь запросы.
    Ответ написан
    Комментировать
  • Что делать если завиcает графическая оболочка Ubuntu?

    @metajiji
    Более кардинальный шаг fedora с kde:)
    Ответ написан
    Комментировать
  • Есть ли простой способ проверить, подается ли сигнал на компьютер?

    @metajiji
    Подключите провода к клавиатуре, например к кнопке CapsLock :)
    Ответ написан
    Комментировать
  • Как узнать, где находится файл службы в linux?

    @metajiji
    Лучше не редактировать эти файлы, а делать так называемые оверрайды.
    systemctl edit apache2
    systemctl cat apache2


    Команда systemctl edit apache2 создаст /etc/systemd/system/apache2.service.d/override.conf
    и сама выполнит systemctl daemon-reload.
    Комнада systemctl cat apache2 покажет из каких файлов собран apache2.service, т.к. в каталоге /etc/systemd/system/apache2.service.d/ могут быть и другие файлы.

    Плюсы в том, что дистрибутивный файл будет обновляться и не будет терять изменения, при обновлениях.
    Ответ написан
    Комментировать
  • Мой ubuntu сервер пытаются взломать, как защититься?

    @metajiji
    Кстати, если сервер это vps и iptsbles не доступен, всегда можно воспользоваться ip route blackhole. В fsil2ban прикручивается не сложно.
    Ответ написан
    Комментировать
  • Что не так с Docker?

    @metajiji
    Дело не в Dockerfile, а в docker-compose
    А а именно, у вас судя по всему windows, и проблема с пробросом маунтов и в целостности имейджей. Попробуйте вайпнуть докер и запустите с чистого листа:)

    ERROR: for mysql Cannot start service mysql: b"error while creating mount source path '/host_mnt/e/webdev/mysql': mkdir /host_mnt/e: file exists"

    Проброс с хоста (windows) внутрь виртуальной машины с Линукс поломатый. Пересоздайте вм и будет счастье.
    Ответ написан
    Комментировать
  • Как сделать правильный выбор между C# и Java?

    @metajiji
    Сформулируйте ещё раз задачу. Например зачем вам вообще изучать какой-то ЯП? Разработка только под Винду и вы уже знаете с#? Так продолжайте, если это ваша работа. Если хочется чего-то нового в этой сфере, попробуйте .Net. Java тут явно лишняя, она не очень хорошо подходит для десктопных программ, как и python или не дай бог php. Не спорю их можно писать на этих языках, но согласитесь это legacy, у .net или c# как минимум больше Профит в этом.
    Если вдруг встанет вопрос о кроссплатформености GUI приложения, то я бы рекомендовал Qt, там под капотом c++, можно конечно и python опять же через Легаси костыли типа pyqt, а pygtk так себе.

    А вот на c# сделать веб приложение будет проблема, в отличие от рнр или python, да даже на java будет легче :) и главное кроссплатформенность, но сейчас не об этом.

    Вам нужно выбрать свою нишу деятельности, отсюда язык сам выберется.
    Микроконтроллеры это c и c++ тут без вариантов, как бонус для развития ассемблер можете изучать.
    Под андройды конечно же java, как бонус kotlin.
    Но учтите мобилки и контроллеры это 2 разных направления, а десктопные ещё и под Винду это вообще 3 направление развития.
    Ответ написан
  • Как расшифровать в JS строку зашифрованную в Python?

    @metajiji
    Для rsa ключей конечно же pem. Если речь о вебе, то и пароль не плохо, если он не передается по тому же каналу связи, по которому ходят данные. А принципе это касается и ключа.
    Ответ написан
    Комментировать
  • Как настроить редирект с www на без www + HTTPS в Nginx?

    @metajiji
    Вам нужно сделать 2 сервера для http м для https отдельно, в https сервере нужно прописать listen, настроить сертификаты... Ведь, чтобы клиент мог получить 301 код, ему нужно отправить запрос на сарвер, ваш сервер не слушает на https:)
    И ещё я бы рекомендовал использовать так называемые именованные regexp, вместо $1
    Ответ написан