Ответы пользователя по тегу SSH
  • Как управлять docker'ом?

    @canselot
    Собираем образ PHP
    Стандартный официальный образ PHP не включает в себя никаких модулей, поэтому чтобы включить их нужно собрать свой образ на основе официального. Звучит немного страшновато, но на деле все просто. Создаем директорию для нашего образа images/php и в ней создаем файл Dockerfile следующего содержания:

    # Для начала указываем исходный образ, он будет использован как основа
    FROM php:7.1-fpm
    # Необязательная строка с указанием автора образа
    MAINTAINER PHPtoday.ru <info@phptoday.ru>
    
    # RUN выполняет идущую за ней команду в контексте нашего образа.
    # В данном случае мы установим некоторые зависимости и модули PHP.
    # Для установки модулей используем команду docker-php-ext-install.
    # На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
    RUN apt-get update && apt-get install -y \
            curl \
            wget \
            git \
            libfreetype6-dev \
            libjpeg62-turbo-dev \
            libmcrypt-dev \
            libpng12-dev \
        && docker-php-ext-install -j$(nproc) iconv mcrypt mbstring mysqli pdo_mysql zip \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-install -j$(nproc) gd
        
    # Куда же без composer'а.
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    
    # Добавим свой php.ini, можем в нем определять свои значения конфига
    ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
    
    # Указываем рабочую директорию для PHP
    WORKDIR /var/www
    
    # Запускаем контейнер
    # Из документации: The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, 
    # or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
    CMD ["php-fpm"]

    Также в этой папке создадим пока пустой php.ini, чтобы не было ошибки при сборке образа. Можете добавить в него нужные вам настройки.

    Источник
    Ответ написан
    Комментировать