Ответы пользователя по тегу Docker
  • Порядок ваших действий при создании сервисов на Docker?

    @XEHKOK
    Я обычно стягиваю конфиги софта для новых проектов из оф образов.
    1) Можно как просто запулить сбилдить и запустить софт, так и через Dockerfile или даже docker-compose up -d --build, это уже личное дело как религия позволяет)
    Вытягиваю обычно так:
    PHP:
    docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.conf /var/www/projects/mynewproject/docker/php/php-fpm.conf
    docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.d/www.conf /var/www/projects/mynewproject/docker/php/www.conf
    docker cp имя контейнера или сервиса:/usr/local/etc/php/php.ini-development /var/www/projects/mynewproject/docker/php/php.ini
    Левые пути это размещение в контейнере конфигов, правые пути это куда копировать на хост системе.
    После получения исходных конфигов прописываю их в Dockerfile сервиса PHP:
    COPY /var/www/projects/mynewproject/docker/php/php.ini /usr/local/etc/php/php.ini
    COPY /var/www/projects/mynewproject/docker/php/php-fpm.conf /usr/local/etc/php-fpm.conf
    COPY /var/www/projects/mynewproject/docker/php/www.conf /usr/local/etc/php-fpm.d/www.conf

    Правда я делаю это не через волюм конечно, но это опять же вопрос религии)

    Собственно аналогично можно вытянуть конфиги и для Nginx:
    docker cp имя контейнера или сервиса:/etc/nginx/nginx.conf /var/www/projects/mynewproject/docker/nginx/nginx.conf
    docker cp имя контейнера или сервиса:/etc/nginx/conf.d/default.conf /var/www/projects/mynewproject/docker/nginx/default.conf
    Для нового Nginx даже вроде есть файл конфига шаблона: /etc/nginx/templates/default.conf.template, который можно взять за основу для виртуалхостов nginx.
    Ну а для БД и прочего софта думаю не составит труда поковырять оф образы или погуглить)

    2) Если правильно понял на счет модулей ext-php:
    Тут несколько вариантов модули которые входят в базовую сборку php можно установить так:
    RUN docker-php-ext-install -j$(nproc) soap
    Те которые нужно установить и принудительно включить:
    RUN docker-php-ext-install -j$(nproc) opcache && docker-php-ext-enable opcache
    Еще есть которые нужно конфигурировать вроде zip:
    RUN apt-get update && apt-get install -y --no-install-recommends libzip-dev zip
    RUN docker-php-ext-configure zip && docker-php-ext-install -j$(nproc) zip
    А еще можно ставить из PECL расширения на примере pthreads:
    RUN pecl install pthreads && docker-php-ext-enable pthreads

    В общем докенезировать можно php проект главное знать основы докера и специфику софта который нужно в этом самом докере поднять.
    Ответ написан
    Комментировать