是否有必要在Procfile中提供"工人"信息?如果是,那么实际上是什么 - 找不到关于此的好文章.我希望你们有想法.我已经在Procfile中添加了web:node server/server.js的详细信息.任何帮助,将不胜感激!
执行heroku python演示并遇到Procfile问题.我把它放在正确的目录中(与requirements.txt,venv /和app.py一起),文件是"Procfile",没有.txt扩展名(正如其他问题所示).
Procfile的内容是:
web: python app.py
Run Code Online (Sandbox Code Playgroud)
尽管如此,我在运行"foreman start"时仍然遇到"Procfile不存在"错误.在我的智慧结束时,任何建议将不胜感激.
干杯,塞恩
编辑:使用echo命令而不是编辑器重新创建"Procfile" -
echo "web: python app.py" > Procfile
Run Code Online (Sandbox Code Playgroud)
之后工作,谢谢.
是否可以在Procfile中添加注释?如果是这样,语法是什么?
不确定这是否重要,但我在Heroku上主持.
我有这个简单的Procfile
web: myapp
Run Code Online (Sandbox Code Playgroud)
myapp在路径中,但进程主目录应为./directory/.如何在Procfile中指定要启动进程的位置?
https://github.com/ddollar/foreman/pull/101没有帮助,因为它假设,这个工作目录对于Procfile指定的每个进程应该是相同的
在我的项目的根目录,我有一个frontend和backend文件夹.两个文件夹都包含package.json列出其依赖项的文件夹.npm install在部署应用程序时,如何告诉Heroku 在两个文件夹上运行?Heroku似乎希望package.json默认情况下只有一个文件.我是否必须使用Procfile执行某些操作?Heroku文档似乎没有说明我的具体问题.
谢谢您的帮助!
我有一个使用React,Webpack和Yarn的Rails应用程序用于客户端.我在/ client目录中拥有与客户端相关的所有内容.这包括我的yarn.lock和package.json文件.我有一个proc文件,cds到/ client并正确运行yarn run build.这在本地工作,没有错误.但是,当我部署/推送到Heroku时,我的推送被拒绝,我收到以下错误:
remote: cd client && yarn run build:production
remote: sh: 1: yarn: not found
remote: rake aborted!
remote: Command failed with status (127): [cd client && yarn run build:production...]
Run Code Online (Sandbox Code Playgroud)
这对我说的是Heroku无法在根级别找到yarn.lock文件.如何让Heroku使用yarn.lock我/ client目录下的文件?
或者这个错误的原因是完全不同的?
我无法让我的dynos运行多个延迟的工作进程.
我的Procfile看起来像这样:
worker: bundle exec script/delayed_job -n 3 start
Run Code Online (Sandbox Code Playgroud)
我的delayed_job脚本是gem提供的默认值:
#!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
Run Code Online (Sandbox Code Playgroud)
当我尝试在本地或在Heroku dyno上运行时,它会静静地退出,我无法分辨出发生了什么.
foreman start
16:09:09 worker.1 | started with pid 75417
16:09:15 worker.1 | exited with code 0
16:09:15 system | sending SIGTERM to all processes
SIGTERM received
Run Code Online (Sandbox Code Playgroud)
任何有关如何调试问题的帮助或关于在单个dyno上运行多个工作人员的其他方法的建议将非常感激.
我有以下内容Procfile:
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
redis: bundle exec redis-server /usr/local/etc/redis.conf
worker: bundle exec sidekiq
Run Code Online (Sandbox Code Playgroud)
跑步$ foreman start启动Unicorn,Redis和Sidekiq,但我应该如何再次阻止他们?
杀死福尔曼让所有三个人都离开了.我可以看到这个使用ps:
$ ps aux | grep redis | grep -v grep
me 61560 0.0 0.0 2506784 1740 s000 S+ 9:36am 0:01.28 redis-server /usr/local/etc/redis.conf
$ ps aux | grep sidekiq | grep -v grep
me 61561 0.0 1.0 2683796 173284 s000 S+ 9:36am 0:14.18 sidekiq 2.17.0 pathways [0 of 25 busy]
$ ps aux …Run Code Online (Sandbox Code Playgroud) 我有一个带有相关API和数据库的Web应用程序.
我想在API中使用相同的Django模型,但是它由不同的进程单独提供,因此我可以独立扩展它.
我也不需要API来提供静态资产或任何其他视图.
复杂的是我定义的路由有API,webapp共享根域:
http://domain.com/normal/application/stuff
http://domain.com/api/different/stuff
Run Code Online (Sandbox Code Playgroud)
另外我的Django应用程序依赖于彼此的模型和常量(所以两个不同的settings.py文件有不同INSTALLED_APPS并不能完全解决它).
我想有一种方法是我可以在我的Procfile中定义不同的进程,它只是启动Django应用程序,但是在其中一个进程中它可能有不同的环境变量?我不认为我可以改变每个Proc的环境heroku:config,我认为它实际上必须是Procfile中的指令.
任何人都有这方面的经验或见解吗?谢谢!
在将模块化Sinatra应用程序部署到Heroku时,我不断收到此错误:
bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.4.0/bin/rackup)
我试过调整我的config.ru和我的Procfile,没有成功.以下是config.ru的内容:
$LOAD_PATH.unshift(::File.expand_path('lib', ::File.dirname(__FILE__)))
require_relative 'lib/app'
run Tir::App
Run Code Online (Sandbox Code Playgroud)
Procfile:
web: bundle exec rackup config.ru -p $PORT
Run Code Online (Sandbox Code Playgroud)
LIB/app.rb:
require 'sinatra/base'
module Tir
class App < Sinatra::Base
# code
end
end
Run Code Online (Sandbox Code Playgroud)
请指出我正确的方向.
PS.我可以部署应用程序,但在尝试使用Pony gem发送电子邮件时会出现上述错误.
编辑20.07.2018: 我已经调试了这个问题并找到导致崩溃的线路:
https://gist.github.com/abbottjam/248edfd50f094f99b3bf5b1f995fd290#file-static-rb-L15
错误消息现在说:
内部服务器错误:没有将Array隐式转换为String
所以它必须是configure_options下面方法中的代码块.仍然不知道数组 - >字符串转换应该在哪里发生.谢谢.