-
-
Notifications
You must be signed in to change notification settings - Fork 289
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
739b2b0
commit 751add2
Showing
3 changed files
with
42 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,4 +31,5 @@ Guide: | |
|
||
whatispex | ||
buildingpex | ||
recipes | ||
api/index |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
.. _recipes: | ||
|
||
PEX Recipes and Notes | ||
===================== | ||
|
||
Gunicorn and PEX | ||
---------------- | ||
|
||
Normally, to run a wsgi-compatible application with Gunicorn, you'd just | ||
point Gunicorn at your application, tell Gunicorn how to run it, and you're | ||
ready to go - but if your application is shipping as a PEX file, you'll have | ||
to bundle Gunicorn as a dependency and set Gunicorn as your entry point. Gunicorn | ||
can't enter a PEX file to retrieve the wsgi instance, but that doesn't prevent | ||
the PEX from invoking Gunicorn. | ||
|
||
This retains the benefit of zero `pip install`'s to run your service, but it | ||
requires a bit more setup as you must ensure Gunicorn is packaged as a dependency. | ||
The following snippets assume Flask as the wsgi framework, Django setup should be | ||
similar: | ||
|
||
.. code-block:: bash | ||
$ pex flask gunicorn myapp -c gunicorn -o ~/service.pex | ||
Once your pex file is created, you need to make sure to pass your wsgi app | ||
instance name to the CLI at runtime for Gunicorn to know how to hook into it, | ||
configuration can be passed in the same way: | ||
|
||
.. code-block:: bash | ||
$ service.pex myapp:appinstance -c /path/to/gunicorn_config.py | ||
And there you have it, a fully portable python web service. |