Nginx в контейнере Docker не запускается переполнением стека

Я начинающий с Docker, и я пытаюсь создать свой собственный образ: Ubuntu + Nginx + PHP.

Итак, у меня есть каталог под названием тестовое задание. Внутри каталога два других каталога, приложение а также сайты с поддержкой. Также есть Dockerfile с содержанием:

FROM ubuntu:trusty

RUN apt-get update && \
apt-get install -y nginx php5-fpm php5-mysql php-apc php5-imagick php5-imap php5-mcrypt php5-gd libssh2-php && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

RUN echo "daemon off;" >> /etc/nginx/nginx.conf
ADD sites-enabled/ /etc/nginx/sites-enabled/
ADD app/ /app/

EXPOSE 80
CMD ["php5-fpm", "-c", "/etc/php5/fpm"]
CMD ["/usr/sbin/nginx"]

Я строю этот образ успешно. Затем я создаю контейнер с docker run -d image_name, Я получаю удостоверение личности, а затем я бегу docker inspect -f "{{.NetworkSettings.IPAddress}}" ID для того, чтобы получить IP-адрес контейнера.

Мне нужен этот IP-адрес, потому что я также запускаю HAProxy в другом контейнере, поэтому я могу настроить его так, чтобы он указывал на правильную локализацию.

Итак, HAProxy и контейнер с приложением PHP работают нормально. HAProxy указывает на правильное приложение. Файлы приложения PHP загружаются в нужное место внутри контейнера.

Но Nginx не выполняет PHP. Вместо этого, когда я пытаюсь получить доступ к приложению, я просто получаю загруженный файл с моим PHP-кодом index.php.

В чем может быть проблема? Пожалуйста помоги.

Моим первым предположением было, что я делаю что-то не так в Dockerfile, когда запускаю php5-fpm. Я пробовал несколько разных способов, но ни один из них, похоже, не работает.

0

Решение

Только один CMD.

Если вам нужны «услуги», посмотрите в supervisord или рунит.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]