Have been gone for a while, checking in again and noticed you have found a way to make available eventlet workers for gunicorn. Amazing work, well done! <3
However, there is something which is either a minor, tiny bug - or (less likely?) an implementation detail, that should, in my humble opinion, at least be documented on the help pages.
With
pa website create (...) gunicorn --bind=unix:$DOMAIN_SOCKET (...)
or
pa website create (...) gunicorn --bind="unix:$DOMAIN_SOCKET" (...)
there's only 404 and the webapp is unreachable. Looking at /var/log/***.pythonanywhere.com.error.log
shows
[INFO] Listening at: unix:$DOMAIN_SOCKET (1)
So it seems like the environment variable isn't replaced with the correct value. If, however, I am using
pa website create (...) gunicorn --bind=unix:${DOMAIN_SOCKET} (...)
or
pa website create (...) gunicorn --bind="unix:${DOMAIN_SOCKET}" (...)
everything works perfectly fine and /var/log/***.pythonanywhere.com.error.log
shows
[INFO] Listening at: unix:/var/sockets/***.pythonanywhere.com/app.sock (1)
I can't come up with a reason why the shell language would differentiate between $DOMAIN_SOCKET
and ${DOMAIN_SOCKET}
, so I assume there's some magic going on behind the scenes. This behavior was very unexpected to me. Surely, all four command should be equivalent, no?
Just thought I'd let you know. Again, thank you very much for making this possible. :)