Ubuntu — Как установить связь между Nginx и PHP-контейнером

я имею PHP web application и я хочу превратить его в docker,

У меня есть эти контейнеры

mysql
php
nginx

У меня есть исходный код в моей папке хоста, как /var/www/site1

Теперь, когда я запускаю nginx, я могу смонтировать site1 для nginx как /usr/nginx/share/html

Но я не уверен, как я могу связать с PHP Conainer. Не могу ли я иметь отдельный контейнер PHP с установленным только PHP, или мне нужно иметь некоторый веб-сервер вместе с PHP

0

Решение

Мой взгляд на контейнеры Docker заключается в том, что каждый контейнер обычно представляет один процесс. Например. MySQL или же Nginx как в вашем примере. Контейнеры обычно связываются друг с другом используя сеть или через общие файлы в томах.

Каждый контейнер работает со своей собственной операционной системой (обычно указывается в FROMраздел в вашем Dockerfile, В вашем случае вы предлагаете Nginx-контейнер работает в одном процессе с одной операционной системой и что PHP-библиотека запустить в другом процессе (в другом ОС). Я не уверен, что это выполнимо, но кажется, что это странный способ делать вещи.

Я предлагаю вам создать два контейнера:

  • nginx+php — этот контейнер содержит установку PHP, а также Nginx-вещи
  • mysql — этот контейнер содержит базу данных

Контейнер может общаться через классическую сеть или как связанные контейнеры.

Однако PHP-файлы, которые вы хотите выполнить (т.е. ваш сайт), должны быть динамически смонтированы как объем данных на nginx+php контейнер или как контейнер объема данных.

2

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

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

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