Запускаем веб-сервер в одну строчку. 3 простых способа которые должен знать каждый разработчик

Время от времени у разработчиков возникает необходимость запустить локальный веб-сервер для статического контента.  Например, открытие локального HTML файла в браузере работает иначе, чем если открыть тот же файл через локальный веб-сервер. Как правило это связано с настройками безопасности современных браузеров. 
В этой статье я собрал известные мне способы быстро развернуть локальный веб-сервер для текущего директория. Все команды состоят их одной и не очень длинной строки 😉. Если вы пользуетесь каким-то другим, но простым способом, поделитесь им, пожалуйста, в комментариях. Для всех примеров я буду использовать порт 8080, так что локальный веб-сайт будет доступен по http://localhost:8080. Итак, поехали.

1. Python way
Да, Питон есть не у каждого, но шанс, что он уже есть у вас на машине очень велик. Python по дефолту стоит на Маках и на некоторых дистрибутивах Linux. На Windows и других операционных системах не редко устанавливается для других инструментов. 
Для Python 3.x, а он, полагаю, стоит у большинства замечательно сработает команда 
python3 -m http.server 8080

для Python 2.x команда будет выглядеть так
python -m SimpleHTTPServer 8080

2. NodeJS way
Идем дальше. Многие фроненд-разаботчики работают над проектами в node и npm, но не многие знают про замечательную утилиту npx, которая позволяет скачать и запустить пакет из репозитория  npm. Больше про npx можно почитать здесь. Обратите внимание на точку в конце команды.
npx serve -s -l 8080 .

3. Docker way
Напоследок, универсальный способ. Да с его помощью можно развернуть и запустить почти любой веб-сервер, но мы выберем докер-имидж небольшого размера на alpine и nginx. Его размер чуть более 20 МБ более того, будучи скачанным один раз, имидж кэшируется и последующие старты докер-контейнера почти моментальные.

Для Mac\Linux
docker run --rm -p 8080:80 -v $(pwd):/usr/share/nginx/html:ro nginx:1.19.0-alpine

На Windows надо поменять только указание текущего директория с $(pwd) на %cd%
docker run --rm -p 8080:80 -v %cd%:/usr/share/nginx/html:ro nginx:1.19.0-alpine

Небольшие пояснения по команде. 
  • --rm – удаляет контейнер, после того как он будет остановлен. Больше про команду --rm можно почиать в документации.
  • -p – производит мэппинг портов. Так для порта контейнера 80 будет соответствовать порт 8080 на машине
  • -v – производит мэппинг директорий. Для текущей директории ($(pwd) для Mac/Linux и %cd% для Windows) на машине будет соответствовать директорий в контейнере /usr/share/nginx/html. Дополнительный параметр “ro” означает, что докер-контейнеру файлы из этого директория доступны в режиме только для чтения.

Ну вот и все. Безусловно, список не исчерпывающий и если у вас есть какой-то другой, но тоже очень простой быстро развернуть веб-сервер, поделитесь им, пожалуйста, в комментариях.

Комментарии

Популярные сообщения из этого блога

Команды docker save/load, docker export/import – в чем отличие, как и когда ими пользоваться

Как "заглянуть" внутрь запущенного докер-контейнера

Как узнать, кто заблокировал файл или папку