Skip to main content

Procfile文件

Procfile 介绍

Procfile 是 Rainbond 基于代码指定服务运行方式的策略。其本身是一个普通的文本文件,需要将其放到代码的根目录中,其内容是定义源码构建的服务运行起来的启动命令。通常情况下只包含一行信息即可,请看下面的例子:

  • Java 语言类型,定义启动命令运行 War 包
web: java -jar /opt/webapp-runner.jar --port $PORT --session-store redis ./*.war
  • 直接执行二进制文件,例如 nginx
web: vendor/bin/heroku-php-nginx
  • 执行启动脚本,例如执行 Maven 生成的 Tomcat Java Server 脚本
web: sh target/bin/webapp
  • 启动 ruby 项目
 bundle exec bin/rails server -p $PORT -e $RAILS_ENV

您可能注意到了 $PORT 这个环境变量,指定服务的监听端口。Rainbond 运行服务时将自动通过用户设置的端口信息注入此环境变量。通过上述类型的启动命令,实现服务监听端口的灵活配置。类似的机制还可以被使用到例如 Tomcat 启动等几乎所有语言服务类型中。

Procfile 格式说明

<服务类型>: <命令>
  • <服务类型> : 目前仅支持 web 服务类型

  • <命令> : 启动程序的命令行,执行的命令必须是前台运行。