Docker совет №3: Установка самых популярных пакетов в Alpine

Oct 5, 2017 17:29 · 266 words · 2 minute read docker

Мы уже знаем, что самый оптимальный выбор для базового docker-образа это Alpine — легковесный дистрибутив Linux.

Давайте разберемся, как установить несколько пакетов, которые чаще всего встречаются в веб-приложениях!

Если длительное время использовать Debian, Ubuntu, CentOS или [ваш_любимый_дистрибутив], то, скорее всего, вы уже знаете, какие пакеты нужны вашим приложениям и как их установить. Но когда возникает необходимость срочно освоить установку нужных пакетов в docker-образе на базе Alpine, то с этим могут возникнуть проблемы…

Даже менеджеры пакетов в разных дистрибутивах отличаются:

+-----------------+-------------------------+
| DISTRIBUTION    | PACKAGE MANAGER COMMAND |
+-----------------+-------------------------+
| Alpine          | apk                     |
| Arch            | pacman                  |
| Debian / Ubuntu | apt (aptitude)          |
| CentOS / RHEL   | yum                     |
| Fedora          | dnf                     |
+-----------------+-------------------------+

Для управления пакетами в Alpine нужно использовать apk. Но разница не только в пакетных менеджерах, ведь сами названия пакетов тоже отличаются!

Для примера самые популярные пакеты, которые чаще всего устанавливаются для работы с веб-приложениями будут называться так:

+-------------------------------+-----------------+--------------------+
| PURPOSE                       | ALPINE          | DEBIAN / UBUNTU    |
+-------------------------------+-----------------+--------------------+
| Connecting to PostgreSQL      | postgresql-dev  | libpq-dev          |
| Connecting to MySQL / MariaDB | mariadb-dev     | libmysqlclient-dev |
| Interacting with Imagemagick  | imagemagick-dev | imagemagick        |
| Dealing with bcrypt           | libffi-dev      | libffi-dev         |
+-------------------------------+-----------------+--------------------+

Конечно, этот список далеко не полный — если у вас есть какие-либо пакеты, которые должны попасть в список, дайте мне знать в комментариях. Названия некоторых пакетов можно нагуглить (например, libpq-dev для Alpine), но бывают и разочарования — если вы столкнулись с ошибкой unsatisfiable constraints, то нужного вам пакета не существует. В таком случае можно попробовать собрать его самостоятельно из исходников.

tweet Share