Как запускать cron jobs для docker-контейнеров?

Следуя хорошим практикам работе с Docker, в каждом контейнере должно быть запущено одно и только одно приложение. Как только приложение завершает работу — контейнер останавливается. Эти ограничения заставляют посмотреть на работу с cron задачами по-другому. Конечно, законами физики не запрещено в каждый контейнер устанавливать более одного приложения и запускать крон прямо изнутри контейнера. Однако, это может привести к сложностям и проблемам, особенно когда ваши приложения разрастутся на более чем один сервер. Читать далее Как запускать cron jobs для docker-контейнеров?

Оптимизация и тюнинг производительности MariaDB MySQL сервера внутри Docker

Пожалуй, это единственное актуальное и максимально полное руководство на русском языке по оптимизации MySQL сервера в docker-контейнерах. По сути большая часть советов отлично подойдёт и тем, кто не работает с Docker. Оптимизацию базы данных можно разделить на 3 слоя:

  1. Оптимизация запросов, таблиц и индексов
  2. Тюнинг параметров сервера баз данных
  3. Оптимальная настройка сервера, операционной и файловой систем

В этой замете рассмотрим второй пункт: тюнинг параметров сервера баз данных. И конечно же первым советом будет не использовать Docker для контейнеризации MySQL и других хранилищ! Я серьёзно, если вы используете базу данных находящуюся в контейнере и беспокоитесь о тюнинге производительности, то первым же делом вынесите его на отдельный полноценный сервер. Однако, есть и преимущество при запуске MySQL в Docker: можно для каждого приложения оптимально сконфигурировать настройки.

Читать далее Оптимизация и тюнинг производительности MariaDB MySQL сервера внутри Docker

Настройка SSH авторизации по ключу без пароля в CentOS 7

Как сгенерировать пару приватного и публичного ключей для ssh соединения? От имени пользователя, для которого нужно создать ключи:

ssh-keygen

Читать далее Настройка SSH авторизации по ключу без пароля в CentOS 7

Как установить библиотеку ncurses для PHP

yum install ncurses-devel
phpize --clean
phpize
./configure
(./configure --with-php-config=/usr/bin/php-config --enable-ncursesw=autodetect --with-ncurses)
make
make install

Читать далее Как установить библиотеку ncurses для PHP

Как в docker-compose перезапустить запущенный контейнер с пересборкой?

После редактирования Dockerfile или docker-compose.yml файла, например, прообрасывания порта или добавления волюма, изменения не вступают автоматически! Даже если сделать restart контейнера то всё-равно ничего не изменится. Чтобы применить изменения к контейнеру его нужно пересобрать (build). Читать далее Как в docker-compose перезапустить запущенный контейнер с пересборкой?

Как в Docker отключить логирование всех контейнеров?

По-умолчанию в Docker для всех контейнеров устанавливается режим логирования json-file, т.е. весь STDOUT каждого контейнера будет писаться в файл. В целях отладки это может быть полезно, однако большой поток логов и их запись на диск может занять больше ресурсов, чем полезная нагрузка. Достаточно спорное решение, особенно для тех, кто имел опыт работы с другими системами контейнеризации, например, с Proxmox. Читать далее Как в Docker отключить логирование всех контейнеров?

Как в CentOS отследить нагрузку на диск?

iostat -xk -t 5

Если же такой команды нет, то нужно установить пакет sysstat:

yum install sysstat

Ещё одна интересная утилита — iotop, своеобразный аналог top или htop, но для дисковой подсистемы.

О том как сделать профилирование нагрузки на файловую систему с помощью iostat и gnuplot можно прочитать в этой статье.

Можно ли использовать Redis внутри Docker в продакшене как основное хранилище данных?

Redis очень неплох. Всё больше разработчиков и компаний выбирают его не только в качестве кэширующего in-memory сервиса или системы очередей, но в и в качестве основного хранилища данных, взамен MySQL или Postgres. Да, именно так. Благодаря поддержке разнообразных структур данных, таких как: строки, списки, множества, упорядоченные множества и хэш-таблицы, на Redis отлично перекладывается большинство типичных данных, которые исторически было принято хранить в реляционных СУБД.

Но и это ещё не всё. Редис умеет и некоторые специфические вещи, например, HyperLogLog. (Здесь нужно дописать о всех современных фичах Редиса). Так стоит ли использовать редис в качестве основного хранилища данных? Так же эту заметку можно рассматривать в контектсте любой другой key-value базы данных с похожим внутренним устройством, например, любимая многими MongoDB. Читать далее Можно ли использовать Redis внутри Docker в продакшене как основное хранилище данных?

Отладка CSS и JavaScript на Android смартфоне

Статья по мотивам вот этого мануала. Если вам лень читать и заниматься этим, то вот маленький спойлер: мобильные устройства не умеют реагировать на события mouseenter, mouseleave и им подобные, т.к. там нет мышки. Поэтому нужно обрабатывать события тачскрина: touchstart, touchmove, touchend. Ещё одно отличие — события blur, focus могут срабатывать не тогда, когда вы ожидаете, либо вообще отсутствовать.

DevTools в современных браузерах позволяет переключиться в адаптивный режим и весьма неплохо справляется со своей задачей. Но иногда случается так, что где-то что-то на мобильном работает не так, как на десктопе. В таких случаях понять в чём дело, а не тыкать пальцем в небо, поможет отладка JavaScript прямо на мобильном. Для начала, независимо от браузера, нужно подготовить устройства и установить драйвера. Читать далее Отладка CSS и JavaScript на Android смартфоне

Ускоряем передачу файлов с сервера на сервер через rsync

Rsync — замечательная утилита для синхронизации файлов между файлами. Она отлично подходит для создания бекапов, резервных копий и просто для переброса произвольных файлов с сервера на сервер. Rsync не единственный в своём роде, у него множество альтернатив: FTP, SSH, FISH, SCP и другие. Однако, эр-синк превосходит их по скорости и возможностям. Читать далее Ускоряем передачу файлов с сервера на сервер через rsync