Hello! I’m having issues deploying my Django web app on render: I tried following the guide as much as possible, but since I used only a virtual env (and not poetry) some parts were different (Instead of poetry add I used only pip install)
But I believe my main issue I have is with the build command: the guide tells me to use bash, but I’m on windows and I’m getting a bash\r’: No such file or directory" Error.
To try and fix this, I tried adding a gitattributes file (*.sh text eol=lf), which did not work;
I also tried uploading the staticfiles manually (instead of running ‘python manage.py collectstatic --no-input using the bash file’, which did not return any errors and ‘deployed’, but gave me back a Server 500 error (not sure if because something went wrong with this approach or something else entirely)
Any easy way to fix this? Maybe alternative ways to ‘build’? I could not find many issues similar to mine, but maybe I used the wrong terms to search
I’m not quite clear on what your issue is, are you trying to run these commands on your local machine or when setting up a Render service? Using pip is fine and is used on other Render examples. I’m also not seeing any services on your account, but if a 500 error were being produced, I would expect it to be showing a stacktrace/cause in the service logs.
If you could share some more detailed examples of the issue you are experiencing that may help us troubleshoot it with you, e.g. any logs/errors/output from Render, specific URLs, service name/ID, reproduction steps, screenshots, etc. If you don’t want to share these details on the community forum, please feel free to raise a ticket with support@render.com
Sorry, you did not see any services yesterday because I deleted them, I thought maybe I did something wrong so I’d try redo-ing them the steps on the django-render tutorial today and see if I could find my mistake… but as you can see, I’m still running into the same issue.
My current build.sh has the following:
#!/usr/bin/env bash
I see nothing on the Logs and I named my webservice as ‘yomitoku’ (not sure if that is the same thing as the ‘service name’).
EDIT: I tried again manually inserting the ‘staticfiles’ folder inside my repo (after building it locally) and it deployed correctly by using ‘pip install -r requirements.txt’ instead of a build.sh file.
I will probably have to do that (creating and migrating my staticfiles) manually, but since it’s just a small personal project it’s not a very big deal
It seems that the script wasn’t able to find the bash executable because it tried to look it up as bash\r. The \r is the carriage return character and is used in Windows in the combination of \r\n whereas Linux uses only the linefeed character \n.
It’s weird that the script interprets the \r as being part of the executable name. For all the other people experiencing this: I assume it should work if the script is saved with a Linux line ending setting. Sublime Text (for example) has the following setting:
// Determines what character(s) are used to terminate each line in new files.
// Valid values are 'system' (whatever the OS uses), 'windows' (CRLF) and
// 'unix' (LF only).
"default_line_ending": "system"