На традиционном сервере LAMP у нас есть Linux, на котором работает Apache с MySQL и PHP.

В настоящее время я нахожусь в процессе обучения самому более современному подходу в качестве преамбулы для обучения себя node.js. До сих пор я успешно запускал Ubuntu на виртуальной машине, но меня немного смущает то, какие элементы должны быть построены друг на друге, чтобы завершить создание моего сервера.

Я хочу запустить node.js поверх docker, используя composer, git и, возможно, redis (возможно, это должен быть отдельный сервер, пока я не совсем уверен). Затем я хочу, чтобы аналогичная установка запускала php/mysql, чтобы мои нодовые приложения могли также использовать сильные стороны этих технологий. Это кажется достаточно похожим на производственную среду, чтобы создать хорошую среду обучения.

Так что я думаю, что правильное наслоение:

  • виртуальная коробка
  • запуск Ubuntu с установленными composer, git и другими утилитами
  • запуск образа докера
  • содержащий файл node.js или php/mysql в зависимости от ситуации
  • Который в свою очередь запускает обычный код и фреймворки

Это выглядит правильно? Я наиболее неуверен в роли docker - должен ли он также содержать образ Ubuntu и где должны находиться установки composer и git (на уровне os или уровне docker?).

Общий совет / критика этой установки будет принята с благодарностью.

1 ответ1

0

Я думаю, что понимаю, чего вы пытаетесь достичь. Ваш Virtualbox Ubuntu является основным сервером, где вы должны иметь:

  1. докер
  2. мерзавец и все утилиты
  3. ваш контент (html, php, css, js и т. д.)

Docker позволяет устанавливать контейнерные приложения, а именно:

  1. Nginx и php-pfm
  2. MySQL
  3. NodeJS

Вы должны видеть их как приложения, не более того. У вас должен быть один контейнер на приложение, поэтому, если вы хотите использовать другую версию, скажем, MySQL, вы должны уничтожить контейнер и создать новый. Каждый контейнер должен предоставлять порт, к которому он должен быть доступен (например, порт 80 или 443 для nginx). Кроме того, контейнеру должен быть предоставлен доступ к папкам на главном сервере, на котором находятся исходные файлы (и которые контролируются версией с помощью git). Таким образом, удаление контейнера должно быть таким же, как удаление программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .