Docker nginx php в контейнере centos7

Docker nginx php в контейнере centos7

Мне нужно создать Dockerfile, который по определению должен наследоваться от centos:7, установить nginx и php и заставить его отображать PHP-файл.

Мой Dockerfile:

FROM centos:7
EXPOSE 80/tcp
RUN yum -y update
RUN yum -y install epel-release
RUN yum -y install nginx php php-fpm
RUN echo '<?php phpinfo();' > /var/www/demo/index.php

Мои проблемы:

  1. Как заставить Docker понять, что nginy должен запуститься при создании и запуске контейнера?
  2. Как заставить nginx понимать необходимость использования PHP?

Для 1. все, что я знаю, это то, что это невозможно ссборка докера.

Для 2. Я хотел использовать обучающие материалы, но они все неверны, потому что:

  • нет /etc/nginx/sites-availableкаталога
  • нет файла, вызываемого snippets/fastcgi-php.confв каком-либо месте для включения в nginx.conf

Я никогда раньше не работал с nginx, поэтому понятия не имею, с чего начать. Ни один учебник, который я нашел, не работает, потому что все эти файлы и папки не существуют. Все, что я получаю, это страница с ошибкой 403.

решение1

Это подход, который я вам предлагаю в какой-то момент, вам придется установить и настроить nginx наDockerfileи запускать его в любое время при запуске докера, установите это наdocker-entrypoint.sh

Dockerfile:

#Install and config Nginx
RUN {\
    apt-get install nginx -y\
    rm /etc/nginx/sites-enabled/default\
    }

ADD YOUR_CONFIG_FILE /etc/nginx/sites-enabled/
RUN service nginx start


RUN PATH="$PATH:docker-entrypoint.sh"
COPY docker-entrypoint.sh /
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]

docker-entrypoint.sh:

#!/bin/bash

service nginx start
 
/bin/bash

Надеюсь, поможет!

решение2

Мне удалось сохранить контейнер живым, добавив следующее

CMD ["nginx", "-g", "daemon off;"]

Надеюсь, это поможет вам и другим коллегам.

Связанный контент