我有这个简单的Procfile
web: myapp
myapp在路径中,但进程主目录应为./directory/。如何在Procfile中指定要启动进程的位置?
https://github.com/ddollar/foreman/pull/101没有帮助,因为它假定这个工作目录对于Procfile指定的每个进程应该是相同的
答案 0 :(得分:38)
shell就是答案。它就像
一样简单web: sh -c 'cd ./directory/ && exec appname'
答案 1 :(得分:5)
您可以将一组shell命令链接在一起。使用当前版本的Foreman,您不需要像在@ JohnDoe的答案中那样将它包装在shell命令中。
web: cd server_dir && start web_service
clk: cd clock_tower && start timers
这些将从各自的文件夹启动必要的进程并独立跟踪它们。
答案 2 :(得分:2)
回答“如何在Procfile中指定要启动进程的位置?”
您可以告诉Foreman应用程序根目录的位置,这意味着它不必与Procfile相同。
您可以使用-d
选项启动Foreman(可能还需要使用-f
到Procfile。)
$ foreman start -d ./directory