源代码目录需要有index.php或composer.json文件
目前支持 Apache 和 Nginx 两种 Web 服务器,如果源代码根目录没有 Procfile 文件来定义启动命令,系统默认会使用 Apache。如果用Nginx可以将Procfile写成如下格式:
web: vendor/bin/heroku-php-nginx
详细文档参见 [ php文档 ]
java应用程序使用Maven进行构建,源代码根目录需要有pom.xml文件
将下面的内容添加到pom.xml文件中
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals><goal>copy</goal></goals> <configuration> <artifactItems> <artifactItem> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-runner</artifactId> <version>7.5.4.v20111024</version> <destFileName>jetty-runner.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build>
将下面的内容添加到pom.xml文件中
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals><goal>copy</goal></goals> <configuration> <artifactItems> <artifactItem> <groupId>com.github.jsimone</groupId> <artifactId>webapp-runner</artifactId> <version>7.0.57.2</version> <destFileName>webapp-runner.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build>
源码跟目录需要有Procfile 文件来定义启动命令,下面根据jetty和tomcat定义不同的启动命令:
jetty | web: java $JAVA_OPTS -jar target/dependency/jetty-runner.jar --port $PORT target/*.war |
tomcat | web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war |
更多文档参见
[ java支持文档 ]
源代码根目录需要有requirements.txt或setup.py文件
需要用户在代码根目录创建 Procfile 文件来指定启动应用的命令,该文件是普通的文本文件,类似的内容如下:
web: gunicorn APP_MODULE --log-file - --access-logfile - --error-logfile -
注意:
详细文档参见 [ python文档 ]
源代码根目录需要有Gemfile文件,即便没有任何gem依赖也需要有一个空的Gemfile文件
代码跟目录中的Procfile 文件定义应用的启动命令,Rails或Rack应用如果没有该文件会默认使用如下的命令启动:
Rails 4.x | web: bundle exec bin/rails server -p $PORT -e $RAILS_ENV |
Rails 3.x | web: bundle exec rails server -p $PORT |
Rails 2.x | web: bundle exec ruby script/server -p $PORT |
Rack | web: bundle exec rackup config.ru -p $PORT |
注意:
生产环境建议使用puma做为ruby应用的web server,Procfile的写法参见 [ruby-sinatra] 或 [ ruby-rails] 代码示例。
详细文档参见 [ ruby文档 ]
源代码目录需要有package.json 文件,如果不存在请使用 npm init 命令创建并配置需要的依赖和其它信息。
Procfile 文件不是必须的,系统会检查 package.json 里的 scripts.start 项,如果存在,系统会自动创建 Procfile 。点击查看 package.json 文件中的 scripts.start 示例。否则,用户需要自行创建 Procfile 来指定应用启动命令,如:
web: node app.js
详细文档参见 [ Node.js文档 ]