简体   繁体   中英

Adding newrelic to a python stack (django) deployed via dokku

I'm trying to add newrelic to a django website deployed via dokku.

I've installed newrelic and added to the requirements and also created the newrelic.ini file and added to the repo.

I've aslo changed the command of my Procfile, so it reads like:

NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn config.wsgi:application

Whe I deloy however I get a strange error, with the daemon complaining the file is not present:

(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'

The file is there in the repo and in the branch. Do I need to modify the buildpack to make sure that gets taken in account properly?

I've figure it out.

just export the NEW_RELIC_CONFIG_FILE as enviroment variable via dokku, and do not add it to the Procfile. In may case ticker is the name of the app

dokku config:set ticker NEW_RELIC_CONFIG_FILE=newrelic.ini

and then procfile is

newrelic-admin run-program gunicorn config.wsgi:application

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM