我正在尝试添加newrelic到通过dokku部署的django网站。
我已经安装了newrelic并添加到了需求中,还创建了newrelic.ini文件并添加到了repo中。
我已经改变了我的Procfile的命令,所以它的内容如下:
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn config.wsgi:application
当我取消部署但是我得到一个奇怪的错误,守护进程抱怨文件不存在:
(ticker_env) mattions@apollo:ticker(add_newrelic*)$ git push dokku add_newrelic:master
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 4.21 KiB | 0 bytes/s, done.
Total 8 (delta 3), reused 0 (delta 0)
remote: master
-----> Cleaning up...
-----> Building ticker from herokuish...
-----> Adding BUILD_ENV to build environment...
-----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
Detected buildpacks: multi nodejs python
-----> Multipack app detected
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-python.git
=====> Detected Framework: Python
-----> Installing requirements with pip
-----> $ python manage.py collectstatic --noinput
DEBUG 2017-07-20 06:55:42,979 base 529 139977271977792 Configuring Raven for host: <raven.conf.remote.RemoteConfig object at 0x7f4ef31a7a90>
111 static files copied to '/tmp/build/staticfiles', 111 post-processed.
Using release configuration from last framework (Python).
-----> Discovering process types
Procfile declares types -> web, tracker
-----> Releasing ticker (dokku/ticker:latest)...
-----> Deploying ticker (dokku/ticker:latest)...
-----> Attempting to run scripts.dokku.predeploy from app.json (if defined)
-----> App Procfile file found (/home/dokku/ticker/DOKKU_PROCFILE)
-----> DOKKU_SCALE file found (/home/dokku/ticker/DOKKU_SCALE)
=====> web=1
=====> tracker=1
-----> Attempting pre-flight checks
For more efficient zero downtime deployments, create a file CHECKS.
See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples
CHECKS file not found in container: Running simple container check...
-----> Waiting for 10 seconds ...
644dd10a08b1186f90570d2c4186027533da19a53648c36f380f1c1ee480f04c
remote: App container failed to start!!
=====> ticker web container output:
setuidgid: fatal: unable to run NEW_RELIC_CONFIG_FILE=newrelic.ini: file does not exist
setuidgid: fatal: unable to run NEW_RELIC_CONFIG_FILE=newrelic.ini: file does not exist
setuidgid: fatal: unable to run NEW_RELIC_CONFIG_FILE=newrelic.ini: file does not exist
setuidgid: fatal: unable to run NEW_RELIC_CONFIG_FILE=newrelic.ini: file does not exist
setuidgid: fatal: unable to run NEW_RELIC_CONFIG_FILE=newrelic.ini: file does not exist
=====> end ticker web container output
To ideallab.org:ticker
! [remote rejected] add_newrelic -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@ideallab.org:ticker'
该文件位于repo和分支中。我是否需要修改buildpack以确保正确使用它?
答案 0 :(得分:2)
我已经弄清楚了。
只需通过dokku将NEW_RELIC_CONFIG_FILE导出为环境变量,不要将其添加到Procfile中。在可能的情况下,自动收报机是应用程序的名称
dokku config:set ticker NEW_RELIC_CONFIG_FILE=newrelic.ini
然后procfile是
newrelic-admin run-program gunicorn config.wsgi:application