我有一个Procfile设置,成功运行了许多进程:
# /Procfile
redis: bundle exec redis-server
sidekiq: bundle exec sidekiq -v -C ./config.yml
forward: forward 4567 mock-api
Run Code Online (Sandbox Code Playgroud)
我需要再添加一个进程 - 一个位于我机器上不同目录的Sinatra应用程序.如果我cd到目录,我可以从终端启动它:
$ rackup -p 4567
Run Code Online (Sandbox Code Playgroud)
我可以使用终端从不同的目录启动它:
$ sh -c 'cd /Path/to/project/ && exec rackup -p 4567'
Run Code Online (Sandbox Code Playgroud)
但是我应该如何使用领班做到这一点.我尝试添加以下内容,但它无声地失败:
mock-api: sh -c 'cd /Path/to/project/ && exec rackup -p 4567'
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?如果是这样,怎么样?
我正在关注Heroku快速入门指南中的Django入门.
我打算应用关于使用virtualenvs和项目的Django两本书的哲学思想.Audrey Roy和Daniel Greenfeld(作者)喜欢将所有环境放在一个目录中,将所有项目放在另一个目录中.
我还打算应用Django的两个Scoops书籍哲学,将django-admin.py startproject管理命令生成的内容放在另一个目录中,该目录作为git仓库根目录(又称三层方法).
最高级别的布局:
repository_root/
django_project_root/
configuration_root/
Run Code Online (Sandbox Code Playgroud)
OS X 10.8.4
pip == 1.4.1
virtualenv == 1.10.1
virtualenvwrapper == 4.1.1
wsgiref == 0.1.2
.bashrc包含:
export WORKON_HOME=$HOME/Envs
export PROJECT_HOME=$HOME/Projects
Run Code Online (Sandbox Code Playgroud)
〜/ Envs
~/Projects
Django == 1.5.2
dj-database-url == 0.2.2
dj-static == 0.0.5
django-toolbelt == 0.0.1
gunicorn == 18.0
psycopg2 == 2.5.1
static == 0.4
mac-pol:~ oubiga$ …Run Code Online (Sandbox Code Playgroud) 我有三个流程Procfile.有时候,我只想跑两个.那是否有命令?
$ foreman start process_1 process_2
ERROR: "foreman start" was called with arguments ["process_1", "process_2"]
Usage: "foreman start [PROCESS]"
Run Code Online (Sandbox Code Playgroud) 在aws上载和部署之后,.jar文件尚未启动.所以静态内容正在被提供,并且正在重新配置nginx(通过自定义配置)但是jar文件(我已经上传的.zip的根目录)在部署后没有运行,所以我不得不通过ssh命令运行它,当然它关闭ssh终端后关闭...我在亚马逊网站上定义了procfile,但没有进展..
deployment jar amazon-web-services procfile amazon-elastic-beanstalk
我正在将heroku与maven一起使用来运行服务器。我的目标是让heroku作为Web dyno运行Java类server.class。
我将如何编写procfile来以网络方式执行Java程序server.class?
我当前的Procfile
web: java -cp $JAVA_OPTS target/classes/v1/a1/server
Run Code Online (Sandbox Code Playgroud)
我的错误。(来自heroku日志)
Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
Error: Could not find or load main class target.classes.v1.a1.server
State changed from starting to crashed
Run Code Online (Sandbox Code Playgroud)
可能有用的信息
proc文件
web: java -cp $JAVA_OPTS target/classes/v1/a1/*
Run Code Online (Sandbox Code Playgroud)
退货
Error: Could not find or load main class target.classes.v1.a1.myOtherClass
Run Code Online (Sandbox Code Playgroud)
我原来的Procfile(也没用)
web: java -cp target/classes/:target/dependency/* server
Run Code Online (Sandbox Code Playgroud)
我已经关注了关于Django和Static Assets的官方Heroku文档 ; 我已经安装dj-static并将其添加到我的requirements.txt文件中,正确配置了我settings.py文件中的所有变量:
STATIC_ROOT = os.path.join(CONFIG_ROOT, 'served/static/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(CONFIG_ROOT, 'static'),
)
Run Code Online (Sandbox Code Playgroud)
这就是我的wsgi.py样子:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_django_project.settings")
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
Run Code Online (Sandbox Code Playgroud)
内容Procfile:
web: gunicorn --bind 0.0.0.0:$PORT my_django_project.wsgi:application
Run Code Online (Sandbox Code Playgroud)
在文档中,它表示"collectstatic在配置正确时会自动运行".但是当我导航到我的网站时,显然没有css.
我尝试使用调试heroku run,但只是按预期复制静态文件.
我注意到当我collectstatic在我的命令中包含命令时Procfile,即
web: python my_django_project/manage.py collectstatic --noinput ; gunicorn -b 0.0.0.0:$PORT my_django_project.wsgi:application
Run Code Online (Sandbox Code Playgroud)
...按预期工作,并提供静态文件.
然而,有什么奇怪的是当我跑步heroku run bash并查看STATIC_ROOT …
在尝试部署我的Ruby on Rails应用程序时,我得到了这个错误.这是我的命令行中的错误:
###### WARNING:
remote: No Procfile detected, using the default web server (webrick)
remote: https://devcenter.heroku.com/articles/ruby-default-web-server
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
remote: Default types for Ruby -> console, rake, web, worker
remote:
remote: -----> Compressing... done, 29.5MB
remote: -----> Launching... done, v21
remote: https://agile-sea-1900.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/agile-sea-1900.git
e5d3ad8..975d5eb master -> master
Run Code Online (Sandbox Code Playgroud)
我尝试按照" 未使用默认Web服务器检测到Procfile "中的建议,但这没有帮助.
我有一个Deployd应用程序,我试图部署到Heroku.我已成功部署该应用程序,并能够通过它的url命中它.我现在正试图访问仪表板.为了访问仪表板,它需要我从服务器生成密钥.我知道有两种方法可以做到这一点.
这里描述的第一种方法在本地生成密钥并将其推送到heroku.我觉得这种方法在将密钥发布到VCS的意义上是不安全的.
第二种方法是使用Procfile和list dpd keygen和dpd showkey.但由于某种原因,这种方法对我不起作用.我看到命令在heroku日志中执行但它没有打印出键,我无法通过执行看到它heroku run dpd showkey.
我想弄清楚为什么列出我的procfile中的命令不起作用.请在下面找到我的文件:
web: node app.js
cmd: dpd keygen
cmd: dpd showkey
Run Code Online (Sandbox Code Playgroud)
我的日志文件如下:
2015-08-30T19:18:25.012474+00:00 heroku[api]: Starting process with command `dpd showkey` by [email]
2015-08-30T19:18:28.196008+00:00 heroku[run.5122]: Starting process with command `dpd showkey`
2015-08-30T19:18:28.168161+00:00 heroku[run.5122]: Awaiting client
2015-08-30T19:18:28.501367+00:00 heroku[run.5122]: State changed from starting to up
2015-08-30T19:18:31.023033+00:00 heroku[run.5122]: State changed from up to complete
2015-08-30T19:18:31.012416+00:00 heroku[run.5122]: Process exited with status 0
2015-08-30T19:19:36.935285+00:00 …Run Code Online (Sandbox Code Playgroud) 我试图用工头/本町来管理我基于Procfile-Django应用程序.当我启动应用程序查看正常时python manage.py runserver,一切正常.但是,当我通过honcho start或启动应用程序时foreman start web,我收到此错误:
11:59:31 system | web.1 started (pid=27959)
11:59:31 web.1 | [2016-04-26 11:59:31 -0700] [27959] [INFO] Starting gunicorn 19.4.5
11:59:31 web.1 | [2016-04-26 11:59:31 -0700] [27959] [INFO] Listening at: http://0.0.0.0:5000 (27959)
11:59:31 web.1 | [2016-04-26 11:59:31 -0700] [27959] [INFO] Using worker: sync
11:59:31 web.1 | [2016-04-26 11:59:31 -0700] [27962] [INFO] Booting worker with pid: 27962
11:59:31 web.1 | [2016-04-26 18:59:31 +0000] [27962] [ERROR] Exception in worker …Run Code Online (Sandbox Code Playgroud) ProcfileHeroku 上的 Django 应用程序应该包含哪些内容?
我试过:
web: python appname.py
Run Code Online (Sandbox Code Playgroud)
因为我找到了一个类似 python 应用程序的示例。
进一步的搜索并没有让事情变得更清楚,除了我可能需要使用gunicorn而不是python。我发现各种帖子建议各种格式,例如:
web gunicorn
web:gunicorn
web: gunicorn
Run Code Online (Sandbox Code Playgroud)
我不知道gunicorn之后应该有什么,有些帖子有编程语言,有些有IP地址,有些有各种其他东西。
有些建议运行:
heroku ps:scale web=1
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
Scaling dynos... !
! Couldn't find that process type (web).
Run Code Online (Sandbox Code Playgroud)
我只是没有线索,也不知道该向哪里求助。
自从发帖以来,我观看了一些关于此的视频并尝试过:
web: gunicorn appname.wsgi
Run Code Online (Sandbox Code Playgroud)
在我的 Procfile 中,但它仍然不起作用,仍然导致:
at=error code=H14 desc="No web processes running"
Run Code Online (Sandbox Code Playgroud)