• Как выполнить еще одну команду в docker?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Это считается не docker-way (правильнее в отдельном контейнере запустить отдельный обработчик очереди), но можно так:

    одна команда & другая команда

    Можно также сделать скрипт, который всё как надо запустит, и использовать его в качестве cmd. Можно также внедрить в контейнер микросистему управления сервисами типа runit.

    Почему считается, что плохо так делать? Если php-fpm упадёт, то весь контейнер упадёт и может перезапуститься автоматом. А если упадёт второй сервис, то контейнер будет работать как ни в чём не бывало.
    Ответ написан
    Комментировать
  • Могут ли у класса быть два родителя?

    @Kadabrov
    Учитесь пользоваться удочками(поиск, учебники, видео на Ютуб), благо их в достатке, задаёте вопрос, который должны изучить сами, это азы языка
    Ответ написан
    1 комментарий
  • Как найти ip адреса по маске в iptables linux?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Взять и прочитать правила :) Прямого списка там может и не быть. Более того, я бы не стал там его держать, например. Есть такая штука - ipset, предназначен для хранения списков адресов, портов etc. И он очень часто работает в паре с iptables. Если используется ipset в самом правиле iptables никакого списка адресов не будет.

    Вот например, как я блокирую RFC1918-адреса на входе с внешнего интерфейса (то есть там, где их теоретически быть не должно):
    /etc/sysconfig/ipset
    # RFC1918 networks
    create rfc1918 hash:net family inet hashsize 1024 maxelem 65536 
    add rfc1918 10.0.0.0/8
    add rfc1918 172.16.0.0/12
    add rfc1918 192.168.0.0/16
    
    /etc/sysconfig/iptables
    *mangle
    # Mark packets, which BEFORE NAT have RFC1918-compliant addresses
    -A PREROUTING -i eth1 -m set --match-set rfc1918 src -j MARK --set-mark 1
    *filter
    # Drop packets, which marked to drop in mangle table
    -A FORWARD -m mark --mark 1 -j DROP
    Ответ написан
    6 комментариев
  • Может ли быть такое, что линукс не совместим с моим пк?

    Adamos
    @Adamos
    Например, моя рабочая Убунта занимает 20 Гб диска.
    100 Гб - за глаза.
    Стоит поискать тот LiveCD, который на вашем ноуте таки запустится без установки, чтобы посмотреть, насколько поддерживается железо.
    В ноуте могут быть Win-only железки, на которых производитель сэкономил, вынеся логику в виндовский драйвер и не предлагая никакого другого. Обычно это модуль WiFi, тачпад (могут не поддерживаться некоторые возможности), сканер отпечатка и подобный второстепенный обвес.
    Но самой системе загрузиться это барахло никак не мешает.
    Может, впрочем, спотыкаться система энергосбережения, вешая систему в произвольный момент. Тут придется покопаться в BIOS/UEFI, отталкиваясь от того, что находится в Гугле по сочетанию "{ваш процессор}+Linux+freeze".
    Ответ написан
    Комментировать
  • Как сказать админке чтобы она пропускала из изображений только файлы формата gif?

    Levman5
    @Levman5
    print(“Hello World!”)
    Когда пользователь загружает файл проверь его формат и если он не подходит отправь исключение: raise ValidationError('Текст сообщения')

    Не забудь импортировать: from django.forms import ValidationError

    Всё это в файле admin.py

    PS. Сам не разбираюсь в джанго(делал несколь проектов по видосам) но вот про это знаю.

    Попробуйте
    Ответ написан
    Комментировать
  • Docker: принято ли ставить на продакшене?

    Griboks
    @Griboks
    Стандартный прод сейчас выглядит так: кластер серверов, поверх которых натянуто облако, в котором запускаются контейнеры. Конечный продукт, соответственно, работает как и в любом гугловском облаке - тупо запускается. Остальное - не ваши проблемы.

    p.s.
    Хотя с другой стороны очень часто встречаются бородатые дядки, которые, разумеется на Windows 10 Enterprise edition, запускают виртуалку WMVare Workstation, в которую устанавливают докер, в котором запускают ваш контейнер. Но это уже их проблемы, что всё через одно место сделано.
    Ответ написан
    4 комментария
  • Docker: принято ли ставить на продакшене?

    1. принято. Если кто-то станет шикать на вас за это — это их проблемы, а у нас свободные нравы!
    2. правильно.

    С монтированием – по-разному. Как удобнее. Варианты:
    • в проекте папка /docker под ней в подпапке /docker/nginx – конфиги nginx, которые биндятся в контейнер по одному, или всей подпапкой. Удобно, если захочется по-живому редактить конфиги;
    • в контейнер при его билде, инструкциями в его Dockerfile, копируются файлы из папки;
    • прилетает уже готовый-собранный образ, из которого поднимается рабочий контейнер, не запариваясь расположением конфигов и какими-то настройками.

    Логи направляются в Stdout контейнера и хранятся Docker'ом. Посмотреть хвост: docker logs --tail 50 имя_контейнера
    Ответ написан
    Комментировать
  • Как правильно сархитектурить graphQL в микросервисах?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Не надо так делать. Graphql это только gateway. Использовать его как интерфейс к базе данных, даже через бизнес-логику это такое себе решение. Хотя можно, конечно, кто же спорит. Федерации это удобно, но на масштабе проще застрелиться, чем заниматься этим. Сам aplollo ничего не сделает за вас - это фреймворк, не больше) ну и большое комьюнити с готовыми модулями
    Ответ написан
    4 комментария
  • Используете ли вы psycopg2 в проектах с Django Rest Framework?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    ORM его использует. А использовать его самому в Django проекте - это глупость, аннулирующая всю пользу от применения Django.
    Ответ написан
  • Почему компьютер перестал запускаться после замены ОЗУ?

    Adler_lug
    @Adler_lug
    Ну так может и эта бракованная?
    А до этого пользовались двумя планками на данном компьютере? Может слот.
    А разъёмов под память сколько на плате, 2 или 4? Если 4, то в другие слоты попробуйте ставить.
    Ответ написан
    7 комментариев
  • Ценится ли диплом о профессиональной переподготовке?

    Slayer_nn
    @Slayer_nn
    Гугол, памаги!
    Ценятся знания и опыт. И только.
    Ответ написан
    Комментировать
  • Как открыть cors для 1 файла на NGINX?

    SagePtr
    @SagePtr
    Еда - это святое
    Через location сослаться на нужный файл, а там через add_header добавить нужные заголовки.
    Например,
    location = /myfile.json {
      add_header 'Access-Control-Allow-Origin' '*';
    }

    Иметь ввиду, что объявление add_header в блоке location перекрывает заголовки, объявленные в блоке server, потому при необходимости продублировать их.
    Ответ написан
    Комментировать
  • Как организовать перезапуск сервиса при падении?

    Zoominger
    @Zoominger Куратор тега Системное администрирование
    System Integrator
    Делал такое. Скрипт "запуск программы если она не запущена powershell" гуглится на раз-два, а прикрутить логику на корректное добитие зависшего сервиса - дело двух минут.
    В общем виде:
    1. Проверяем, работает ли процесс;
    2. Если нет, то проверяем порт;
    3. Если порт не закрыт, то просто перезапускаем сервис;
    4. Если порт закрыт, то добиваем остатки сервиса и перезапускаем.
    Ответ написан
    Комментировать
  • Что порекомендуете renovate или snyk?

    есть задача автоматически обновлять пакеты в node.js и react репозиториев, используя CI/CD.

    Имхо, обновление пакетов не должно быть автоматическим, и тем более не должно быть частью CI/CD, тк приложение тестируется на вполне конкретных версиях пакетов, и вообще package-lock не для того придуман, чтобы его какая-то автоматика затирала.

    Ещё более-менее ок вариант - подобие dependabot, который делает PR с обновлёнными пакетами, который можно принять, если все тесты прошли.

    Так что renovate выглядит вполне нормальным решением для своевременных обновлений.
    Snyk же - это какое-то решение полного цикла, чтобы ещё до принятия PR проверять зависимости и всё такое.
    Ответ написан
    4 комментария
  • Хранить ключи в приватном AWS S3 bucket?

    inoise
    @inoise Куратор тега Amazon Web Services
    Solution Architect, AWS Certified, Serverless
    aws secrets manager или aws parameter store
    Ответ написан
    Комментировать
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос одновременно дебильный и нормальный.
    Автор просто не может нормально словами написать, чего хочет.
    Для современного поколения, воспитанного ютубой, это нормально.
    Если бы вопрос можно было задать с помощью слов "гы-гы", "круто, чувак" и смайликов, то у него бы все получилось.
    А пока приходится использовать интеллект на принимающей стороне, чтобы понять, что он там мычит.

    А мычит он не про сам шелл, а про используемый в нем скриптовый язык.
    И ответ получается очень простой - для некоторых задач Bash scripting language тупо подходит лучше. Не говоря уже про интеграцию скриптового языка баш в командную оболочку баш, какой никогда не добиться с помощью "обёрток".

    Но при этом для очень многих скриптов используются и другие языки программирования. Никто не стоит с палкой и не бьет по рукам, если ты хочешь написать скрипт на на баше, а на перле или питоне. Но таки да - большой корпус скриптов написание и отлажен на баше, и просто нет смысла переписывать на что-то ещё.

    Так что да - или легаси, или тупо адекватность задаче.

    Апд. В ходе этой дискуссии я сообразил одну очень важную вещь. Язык программирования по определению является вторичным по отношению к командной оболочке. Главное в баше - это все-таки возможность запускать команды и позволять им взаимодействовать друг с другом. А язык уже построен вокруг этой основной задачи. Если вы попытаетесь вкрячить этот функционал в какой-то из языков программирования общего назначения, вы испортите и оболочку, и язык.
    Ответ написан
    21 комментарий
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Насколько я понимаю раньше шеллы использовались в качестве примитивных высокоуровневых языков. Сейчас у нас есть Perl, Python, nodejs, php...


    Ну давайте вместо рабочего стола пользователю дадим сразу Visual Studio, ведь какая разница как программу запускать - иконкой на рабочем столе, или форкать из высокоуровневого языка?

    shell - это оболочка операционной системы. То, что кроме графической есть еще и command line interface - это совершенно нормально и адекватно. И шелл позволяет пользователю и администратору работать в операционной системе гораздо удобнее, чем через язык программирования.

    То, что sh/bash и другие, настолько развиты что сами по себе являются неплохими языками программирования - это просто следствие того, что командый интерфейс и создавался тогда, когда каждый пользователь был немного программистом, и следствие того, что cmd line удобен для автоматизации просто по своей архитектуре.
    Поэтому Powershell, bash/zsh/ksh будут продолжать развиваться.

    Но ты можешь попробовать писать всю автоматизацию на любом другом языке программирования. И со временем немного столкнуться с тем, что скрипт, написанный на шелл 10 лет назад - просто работает, а скрипт написанный на питон 10 лет назад - несовместим.
    Ответ написан
    42 комментария
  • Как что-то установить в Distroless inage?

    @bankinobi
    Здравствуйте.
    А зачем что-то ставить? Поделитесь кейсами.
    Дебажить можно и из вне через etcdctl --debug с подставлением сертификатов кластера + у кластера etcd есть свои метрики и хелзчеки.
    Ответ написан
    Комментировать
  • Почему Traefik роняет сервер?

    alksily
    @alksily Автор вопроса
    Software developer, CTO
    Проблема была на уровне железа, переезд на другой физический сервер решил вопросы с падением сетевого адаптера.
    Ответ написан
    Комментировать
  • Что означает данная команда в конце Dockerfile?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    я думаю это строка не имеет смысла. Бесконечный слип в фоне, и ожидание пока завершится фоновая задача.
    Вместе - сложно понять какой конкретный смысл в таком сочетании.
    Ответ написан
    3 комментария