添加newrelic到通过dokku

时间:2017-07-20 07:06:10

标签: python django newrelic dokku buildpack

我正在尝试添加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以确保正确使用它?

1 个答案:

答案 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