я имею PHP web application
и я хочу превратить его в docker
,
У меня есть эти контейнеры
mysql
php
nginx
У меня есть исходный код в моей папке хоста, как /var/www/site1
Теперь, когда я запускаю nginx, я могу смонтировать site1
для nginx как /usr/nginx/share/html
Но я не уверен, как я могу связать с PHP Conainer. Не могу ли я иметь отдельный контейнер PHP с установленным только PHP, или мне нужно иметь некоторый веб-сервер вместе с PHP
Мой взгляд на контейнеры Docker заключается в том, что каждый контейнер обычно представляет один процесс. Например. MySQL или же Nginx как в вашем примере. Контейнеры обычно связываются друг с другом используя сеть или через общие файлы в томах.
Каждый контейнер работает со своей собственной операционной системой (обычно указывается в FROM
раздел в вашем Dockerfile
, В вашем случае вы предлагаете Nginx-контейнер работает в одном процессе с одной операционной системой и что PHP-библиотека запустить в другом процессе (в другом ОС). Я не уверен, что это выполнимо, но кажется, что это странный способ делать вещи.
Я предлагаю вам создать два контейнера:
nginx+php
— этот контейнер содержит установку PHP, а также Nginx-вещиmysql
— этот контейнер содержит базу данныхКонтейнер может общаться через классическую сеть или как связанные контейнеры.
Однако PHP-файлы, которые вы хотите выполнить (т.е. ваш сайт), должны быть динамически смонтированы как объем данных на nginx+php
контейнер или как контейнер объема данных.
Других решений пока нет …