Додавання та налаштування сайтів на основі Docker-контейнерів у ServBay
ServBay — це локальне середовище веб-розробки для macOS та Windows, яке підтримує широкий спектр мов та технологічних стеків. Окрім запуску вбудованих пакетів ServBay (PHP, Node.js, Python, Go, Java, бази даних тощо) для розміщення сайтів, ви можете використовувати Docker-контейнери для роботи та управління своїми сайтами чи сервісами. Такий підхід забезпечує гнучкість, ізольованість середовищ і стабільність — особливо корисно для проектів з особливими вимогами чи залежностями.
У цій статті детально описано, як додати сайт, розміщений у Docker-контейнері, до ServBay і інтегрувати його у ваш локальний робочий процес завдяки функції реверсивного проксі.
Огляд
Налаштувавши ServBay як реверсивний проксі, ви спрямуєте доменні запити на відповідний порт сервісу всередині Docker-контейнера. ServBay відповідає за вхідний трафік (наприклад, SSL-сертифікати, розв’язання домену), а Docker-контейнер концентрується на запуску додатку. Така модель поєднує зручність керування у ServBay із потужними можливостями контейнеризації Docker.
Нижче наведено кроки для додавання і налаштування сайту, що працює у Docker-сервісі, в ServBay.
Попередні вимоги
Перед початком переконайтеся, що виконані такі умови:
- Встановлено ServBay: Ви успішно встановили й запустили ServBay на macOS.
- Встановлено Docker: На вашому macOS встановлено Docker Desktop або інше Docker-середовище, й Docker запущений.
- Підготовлено Docker-образ і контейнер: Ви вже створили або завантажили Docker-образ із вашим сайтом/додатком і можете запустити контейнер на його основі.
Покрокова інструкція додавання сайту
Крок 1: Підготовка та запуск Docker-контейнера
Почніть із переконання, що ваш Docker-контейнер працює, а внутрішній сервіс (наприклад, веб-сервер) слухає той порт, який через порт-маппінг Docker буде доступний на хості (вашому macOS).
Наприклад, для простого Nginx-контейнера, що слухає порт 80, ви можете скористатися командою:
bash
docker run -d --name my-nginx-servbay -p 8080:80 nginx1
У цьому прикладі Nginx у контейнері my-nginx-servbay слухає на порту 80, але через параметр -p 8080:80 порт 80 контейнера відображається як 8080 на хості. ServBay буде підключатись до порту 8080 на вашому комп'ютері.
Залежно від вашого застосунку і Dockerfile, переконайтеся, що сервіс в контейнері слухає правильний порт і цей порт відображено на хості.
Крок 2: Відкрийте керування ServBay
У папці програм macOS знайдіть іконку додатку ServBay і запустіть панель керування ServBay подвійним кліком.
Крок 3: Перейдіть до сторінки керування сайтами
Після запуску ServBay на головному екрані в лівому меню виберіть опцію Сайти. Вона перенаправить вас на сторінку керування сайтами, де можна переглядати й налаштовувати всі локальні сайти.
Ілюстрація: натисніть “Сайти” у лівій панелі для переходу до керування.
Крок 4: Додайте новий сайт
У нижній частині сторінки керування сайтами натисніть кнопку +. Після цього праворуч відкриється форма для введення налаштувань нового сайту.
Ілюстрація: натисніть “+” для створення нового сайту.
Крок 5: Налаштування параметрів сайту
У формі конфігурації потрібно заповнити такі ключові поля:
- Назва (Name): Вкажіть зручну назву, наприклад,
Docker Nginx Demo. Ця назва видима тільки у ServBay. - Домен (Domain): Введіть локальний домен, за яким відкриватимете сайт у браузері. Радимо використовувати суфікс
.servbay.demo, наприклад,docker.servbay.demo, щоб уникнути конфліктів з публічними доменами. ServBay автоматично налаштує файл hosts у системі, щоб цей домен вказував на локальний адресу (127.0.0.1). - Протокол (Protocol): Оберіть протокол для сайту — зазвичай достатньо
HTTP/HTTPSза замовчуванням. ServBay слухає порти HTTP (80) та HTTPS (443) і обробляє SSL згідно вашої конфігурації. - Метод отримання SSL-сертифікату (SSL Certificate Request Method): Рекомендується обирати
ServBay CA. ServBay автоматично генерує і керує локально довіреним SSL-сертифікатом, підписаним ServBay User CA. Щоб браузери довіряли цим сертифікатам, встановіть ServBay Public CA у системне сховище ключів. Доступні також способиACME(Let’s Encrypt) іCustom(ваш сертифікат). - Тип сайту (Website Type): 【Важливо】 Вкажіть
Реверсивний проксі (Reverse Proxy). Це означає, що ServBay працює як вхід до вашого сайту і перенаправляє трафік на обрану вами адресу бекенду. - IP-адреса (IP Address): Вкажіть IP, на якому працює Docker-сервіс на хості. Найчастіше це локальний IP
127.0.0.1. - Порт (Port): Укажіть порт, на якому Docker-сервіс доступний на хості. Це той порт, який ви задали у
docker run -p <хост-порт>:<порт-в-контейнері>. Наприклад, якщо в команді-p 8080:80, тут вкажіть8080.
Ілюстрація: заповнення параметрів реверсивного проксі для Docker-сайту.
Крок 6: Завершення і зберігання конфігурації
Після введення налаштувань натисніть кнопку Додати (Add) унизу форми.
ServBay автоматично додасть відповідне правило реверсивного проксі до свого веб-сервера (наприклад, Caddy чи Nginx) та оновить файл hosts у системі для зазначеного домену.
Після успішного збереження сервіс може кілька секунд застосовувати конфігурації. Тепер можете пробувати відкривати щойно доданий домен у браузері.
Крок 7: Перегляд і швидкі дії з сайтом
Після успішного налаштування на сторінці керування сайтами з’явиться новий запис. Переконайтеся, що його статус — “запущений”.
Відтепер ви можете відкривати сайт за налаштованим доменом (наприклад, http://docker.servbay.demo чи https://docker.servbay.demo). Якщо все налаштовано правильно, ServBay перенаправить запит до Docker-контейнера й у браузері з’явиться контент із контейнера.
У записі сайту ServBay пропонує зручні кнопки швидких дій:
- Відкриття кореневої директорії у IDE: (для типу реверсивного проксі ця функція або недоступна, або веде у конфіг-директорію ServBay; залежить від версії та налаштувань)
- Відкриття сайту у браузері: Миттєвий перехід за URL у новій вкладці.
- Перегляд логів сайту: Огляд журналів доступу та помилок для дебагу.
- Пауза/активація сайту: Тимчасове вимкнення чи включення реверсивного проксі ServBay для сайту.
- Видалення сайту: Зняття конфігурації сайту у ServBay.
Ілюстрація: кнопки швидких дій для сайту у ServBay.
Зауваження та найкращі практики
- Стан Docker-контейнера: Переконайтеся, що цільовий контейнер завжди активний, інакше ServBay не зможе перенаправити запит.
- Порти: Уважно перевіряйте відображення портів Docker (
-p) та зазначений порт у ServBay. Він не має бути зайнятий іншими програмами. - Брандмауер: Переконайтесь, що у macOS не заблоковано порти ServBay (типово 80, 443), а також порти, які ви відобразили для Docker-контейнерів.
- Режим мережі Docker: Зазвичай найзручніше використовувати стандартний режим
bridgeта відображення порту через-p. Якщо ж використовується режимhost, ServBay зможе працювати з портом, який слухає контейнер (наприклад, 80), але у цьому режимі можливі конфлікти портів. - ServBay CA: Для зручної HTTPS-розробки дуже бажано встановити ServBay Public CA. Завдяки цьому всі локальні сертифікати ServBay стануть довіреними у браузері, що убереже від попереджень про небезпечні підключення.
Типові питання та вирішення проблем (FAQ)
П: Не можу відкрити сайт після додавання, браузер видає помилку з’єднання чи тайм-аут?
В: Перевірте наступне:
- Статус сайту у ServBay: У керуванні сайтами переконайтеся, що статус — “запущений”.
- Статус Docker-контейнера: У терміналі виконайте
docker psі переконайтеся, що потрібний контейнер запущено. - Маппінг портів Docker: Перевірте результат
docker psу колонці PORTS — чи співпадає порт на хості (наприклад,0.0.0.0:8080->80/tcpабо127.0.0.1:8080->80/tcp, тобто8080) із зазначеним у ServBay. - Сервіс у контейнері: Переконайтеся, що Nginx, Apache, Node та ін. у контейнері слухає потрібний порт і працює без помилок. Перегляньте логи контейнера (
docker logs <ID чи ім'я>). - Логи ServBay: У записі сайту відкрийте логи — вони можуть містити причину невдалого проксінгу.
- Файл hosts у системі: ServBay сам керує ним, але можете вручну перевірити
/etc/hosts— чи домен вказує на127.0.0.1. - Брандмауер: Упевніться, що не заблоковано потрібні порти для ServBay і Docker.
П: Чи може ServBay керувати Docker-контейнерами напряму?
В: ServBay призначено для керування локальними веб-сервісами, СУБД, мовними середовищами та маршрутизацією потоків на бекенд (у тому числі Docker-контейнери). Життєвий цикл самого Docker-контейнера (старт, стоп, побудова образу тощо) не входить до функціоналу ServBay — для цього користуйтесь CLI Docker або Docker Desktop.
П: Що таке ServBay CA і навіщо його встановлювати?
В: ServBay CA (Certificate Authority) — це механізм керування сертифікатами для локальної HTTPS-розробки у ServBay. ServBay User CA підписує SSL-сертифікати для ваших локальних сайтів, а ServBay Public CA — це кореневий сертифікат. Додавши його у сховище ключів macOS, система і браузери почнуть довіряти всім сертифікатам сайтів ServBay, і ви уникнете попереджень “Небезпечне підключення”. Це критично для моделювання HTTPS у локальному середовищі.
Підсумок
Додавання сайту на основі Docker-контейнера в ServBay — це ефективний і гнучкий спосіб організувати локальну розробку, використовуючи ServBay для керування трафіком і доменами, а Docker — для розгортання й ізоляції середовищ. Правильна конфігурація реверсивного проксі дозволяє легко інтегрувати будь-які Docker-проекти у ваш робочий процес із ServBay. Дотримуйтеся описаних кроків і рекомендацій, і ви швидко зможете налаштувати та запустити Docker-сайт локально.
