Как мне запустить php-fpm при запуске Docker-контейнера? - PullRequest
0 голосов
/ 13 марта 2019

Как мне автоматически запустить команду php-fpm при запуске док-контейнера?

У меня есть этот Dockerfile:

FROM composer:1.6.5 as build
WORKDIR /var/www
COPY . /var/www
RUN composer install

FROM php:7.2-fpm
USER root
RUN apt-get update && apt-get install -y \
    build-essential \
    mysql-client \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    locales \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd
RUN apt-get update -y \
    && apt-get install -y nginx
RUN rm -rf /var/www/html
COPY --chown=www-data:www-data --from=build /var/www /var/www
COPY nginx.conf /etc/nginx/sites-enabled/default
EXPOSE 80

RUN service nginx restart
CMD ["nginx", "-g", "daemon off;"]

Я знаю, что должен запустить php-fpm, потому что, когда я захожу на 127.0.0.1:8080, он не показывает мою веб-страницу. Но когда я запускаю ssh в контейнере и запускаю php-fpm, а затем снова посещаю 127.0.0.1:8080, он показывает веб-страницу.

Должен ли я добавить CMD ["php-fpm"] ниже? Можно ли иметь два CMD в Dockerfile?

1 Ответ

0 голосов
/ 13 марта 2019

Предполагается, что вы создаете сценарий start_service.sh или любой другой.запускать оба php_fpm и nginx при запуске контейнера.

Если скрипт подходит для обоих процессов в качестве демонов или в фоновом режиме.А потом просто ждите вечно.

#!/bin/bash
"start php_fpm"
"start_iginx"
sleep infinite

В CMD в Dockerfile вы просто вызываете свой скрипт вместо nginx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...