Procfile запускает процессы в их собственном рабочем каталоге


У меня есть этот простой Procfile

web: myapp

Myapp находится в пути, но домашний каталог процессов должен быть ./справочник/. Как я могу указать в файле Procfile, где должен быть запущен процесс?

Https://github.com/ddollar/foreman/pull/101 не помогает, поскольку предполагает, что этот рабочий каталог должен быть одинаковым для каждого процесса, указанного в Procfile

3 18

3 ответа:

Оболочка-это ответ. Это так же просто, как

web: sh -c 'cd ./directory/ && exec appname'

Вы можете связать набор команд оболочки вместе. С текущей версией мастером, вам не нужно, чтобы обернуть это в командной оболочке, как в ответ @johndoe в это.

web: cd server_dir && start web_service
clk: cd clock_tower && start timers

Они запускают необходимые процессы из своих соответствующих папок и отслеживают их независимо.

Ответ на вопрос "Как я могу указать в файле Procfile, где должен быть запущен процесс?"

Вы можете сказать Форману, где находится корневой каталог приложения, что означает, что это не обязательно то же самое место, что и файл Procfile.

Вы можете запустить Foreman с опцией -d (возможно, потребуется использовать -f и для Procfile).

  $ foreman start -d ./directory

Http://ddollar.github.io/foreman/