в docker, tips

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


Мы уже знаем, что самый оптимальный выбор для базового 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, то нужного вам пакета не существует. В таком случае можно попробовать собрать его самостоятельно из исходников.

Добавить комментарий

  1. У меня используются на дебиане такие пакеты. подскажите для apline
    apt-transport-https \
    lsb-release \
    ca-certificates \
    git \
    curl \
    build-essential
    supervisor \
    cron \
    vim \
    nodejs \
    locales \
    iptables \
    php7.1-fpm \
    php7.1-gd \
    php7.1-imagick \
    php7.1-curl \
    php7.1-opcache \
    php7.1-cli \
    php7.1-intl \
    php7.1-json \
    php7.1-common \
    php7.1-sqlite3 \
    php7.1-bz2 \
    php7.1-mcrypt \
    php7.1-common \
    php7.1-apcu-bc \
    php7.1-xml \
    php7.1-mbstring \
    php7.1-zip \
    php7.1-soap \
    php7.1-pdo \
    php7.1-mysql \
    php-xdebug \
    php-redis