Архив рубрики: DevOps

Docker best practice

Немного из best practice при создании docker образов, кратко без воды.

1. Образ основа — минимальный (Alpine).
2. Минимальное количество слоев, используй RUN &&.
3. Установка пакетов в алфавитном порядке.
4. Очистить кэши ВСЕ! (пример apt  — && rm -rf /var/lib/apt/lists/*).
5.  .dockerignore — все лишнее добавляем сюда, оно не попадет в образ.
6. Часто изменяемые слои нужно ставить в конец (COPY код и конфиги в конец).
7. Не используем latest, везде указываем определенную версию.
8. Multistage.
9. Один контейнер 1 процесс.
10. Ограничение ресурсов для контейнеров.

Entrypoint & CMD
По факту одно и тоже, но разработчики советуют:
Entrypoint — само приложение
CMD — флаги к ниму

RabbitMQ и Docker

RabbitMQ — распределенная очередь сообщений с открытым исходным кодом, поддерживающая множество протоколов связи. Это брокер сообщений, который получает сообщения от Producer (поставщик) и пересылает их Consumer (подписчик).

Эти сообщения хранятся в очереди. Queue (очередь) — это буфер сообщений, построенный по принципу «первым пришел — первым обслужен» (FIFO). Многие поставщики могут отправлять сообщения в очереди, а подписчики могут получать сообщения из этих очередей.

Читать далее