Одновременный запуск нескольких приложений jekyll

Мне было интересно, можно ли одновременно запускать несколько приложений jekyll. Я установил Foreman, но, похоже, он не может изменить порт приложения, когда другое уже запущено.

На данный момент мне нужно вручную установить порт jekyll в Procfile.

web: jekyll --server 5000

Можно ли как-то сделать это автоматически?


person Yannick Schall    schedule 06.01.2013    source источник


Ответы (2)


Я думаю, что я немного опоздал, но вот ответ для тех, у кого такая же проблема. Аналогично Ruby on Rails можно использовать команду --port 3000. Так это будет выглядеть так:

$ jekyll serve --port 8888

Редактировать. Как упоминалось в документации, вы также можете просто добавить параметр port: 8888 в свой файл _config.yml.

Новый сгенерированный файл будет выглядеть так:

name: Your New Jekyll Site
pygments: true
port: 8888

Для примера здесь используется порт 8888

Дальнейшее чтение:


Это лишь некоторые из доступных параметров конфигурации. Многие параметры конфигурации могут быть указаны либо как флаги в командной строке, либо, как вариант (и чаще), они могут быть указаны в файле _config.yml в корне исходного каталога. Jekyll автоматически использует параметры из этого файла при запуске. Например, если вы поместите следующие строки в файл _config.yml:

source:      _source
destination: _deploy

Тогда следующие две команды будут эквивалентны:

$ jekyll build
$ jekyll build --source _source --destination _deploy

Итак, с помощью командной строки

jekyll serve --port 8888

эквивалентно помещению port: 8888 в ваш _config.yml.

person Nick Schmidt    schedule 20.06.2013
comment
Работает, но на самом деле это не что-то новое. как показывают комментарии в предыдущем ответе, спрашивающий хочет, чтобы какое-то автоматическое определение использовало неиспользуемый порт. - person Polygnome; 21.06.2013
comment
Это должен быть jekyll serve --port 8888, а не --p - person mallyvai; 22.10.2014

Конечно. Как уже предполагает ваш вопрос, просто запустите разные экземпляры на разных портах сервера (используя 5000 вместо 4000 по умолчанию). Помните, что вы можете указать сервер (и все другие параметры командной строки) в _config.yml файл, если вы не хотите указывать его в команде запуска. Пожалуйста, поясните, если я неправильно понял вопрос.

person cboettig    schedule 10.01.2013
comment
нет, это правильно :). Я просто ищу способ автоматического определения порта, если это возможно. Просто чтобы я не забыл, какие из них уже используются, когда я переключаю проект. До сих пор я настроил файл порта в своем Procfile. - person Yannick Schall; 14.01.2013
comment
например в идеале он должен обнаружить, что сайт Jekyll работает на 4000, и, следовательно, сгенерировать его на 5000? Не совсем уверен, как это сделать, но, вероятно, было бы проще написать скрипт Rakefile или bash, который сначала выполняет проверку (например, может быть ping с помощью curl?), а затем вызывает Jekyll с номером сервера? - person cboettig; 14.01.2013