Ah, I think I know what the problem is. Didn't think of this before, but Django does not want to serve static files (css, js, images, etc) when in PROD mode (and DEBUG=False).
There are two routes I can think of right now: 1. Set up White Noise to make Django serve static files (http://whitenoise.evans.io/en/stable/) 2. Set up the Azure CDN I described above I would personally go with option 2, because for me that made a big difference in terms of performance. On Wednesday, 10 October 2018 05:04:14 UTC+2, Lawrence Goh wrote: > > Hi Vincent, > > I guess I celebrated too early. I removed the cache and now the site on > port 80 is broken as the images and JS are not downloaded. Any idea on > this? > > Thanks. > > Regards, > Lawrence > > On Wed, Oct 10, 2018 at 2:36 PM Lawrence Goh <[email protected] > <javascript:>> wrote: > >> Hi Vincent, >> >> Thanks a lot of the suggestion. I tried the suggestion on dumping nginx >> and changing the port number but I kept couchdb as it is though. It is >> working as a web app for containers using multi-container. >> >> Will put the single container approach on the pipeline :) >> >> Thanks again! >> >> Regards, >> Lawrence >> >> On Wed, Oct 10, 2018 at 12:13 AM Vincent Meijer <[email protected] >> <javascript:>> wrote: >> >>> No worries, I come from a .net environment myself. >>> As for the App Service, I realized that I set up Postgres and >>> Elasticsearch separately, that is why I was able to use the Single >>> Container approach (see below for future reference). >>> >>> I just remembered I wasn't able to get the docker-compose approach >>> working in the App Service. >>> If you like to give it another try, you could remove the nginx service >>> from your docker-compose.yml. >>> Then add a port mapping on your arches service in your >>> docker-compose.yml from 80 on the host (App Service) to 8000 on the >>> container: >>> Change: >>> ports: >>> - '8000:8000' >>> To: >>> ports: >>> - '80:8000' >>> >>> Also be sure to set the DOMAIN_NAMES setting in your docker-compose.yml >>> to the address of your web app. >>> >>> Finally, you may try removing the couchdb service from your >>> docker-compose.yml, as this db is not (yet) used by arches at the moment >>> (saves some resources). >>> Be sure to *keep* the couchdb environment variables in your Arches >>> service though (their values don't matter, but they are expected to be >>> present). >>> >>> >>> Here is some background info that might be useful: >>> https://blogs.msdn.microsoft.com/appserviceteam/2018/05/07/multi-container/ >>> >>> >>> >>> *Single Container *approach >>> For the Single Container approach you wouldn't use a compose file at >>> all, but that is assuming you run Postgres and Elasticsearch elsewhere. >>> - On the App Service blade, select Container Settings (step 1 in the >>> screenshot below). >>> - Select 'Single Container' (step 2) >>> - Configure that page, ie. select the right image etc. >>> - Go to 'Application Settings' (step 3 on screenshot) and fill out all >>> environment variables you have in your docker-compose.yml as individual app >>> settings >>> >>> >>> [image: Azure App Service.png] >>> >>> >>> On Tuesday, 9 October 2018 12:26:15 UTC+2, Lawrence Goh wrote: >>>> >>>> Hi Vincent, >>>> >>>> Thanks for the reply. I am not so well verse in the web development in >>>> open source space. Last I knew something related was Apache :) Pardon my >>>> knowledge as I am from .net. Some help would be very much appreciated to >>>> implement this. >>>> >>>> Based on the docker compose file, we have these containers - arches, >>>> nginx, db, elasticsearch, couchdb and letsencrypt. The single container >>>> would be having multiple single containers excluding nginx? >>>> >>>> What would be the best approach? >>>> >>>> Thanks. >>>> >>>> Regards, >>>> Lawrence >>>> >>>> >>>> >>>> >>>> On Tue, Oct 9, 2018, 8:46 PM Vincent Meijer <[email protected]> >>>> wrote: >>>> >>>>> Hi Lawrence, >>>>> >>>>> The Azure App Service is meant to take over everything but the app >>>>> itself, so running it with an nginx container is not necessary. >>>>> I used the App Service for a short while and only could get it to work >>>>> when using the single container approach. >>>>> >>>>> That being said, I found the App Service to be extremely slow (and >>>>> expensive), so I am eager to hear your experiences with it. >>>>> >>>>> For me it did help to set up Azure CDN to serve static files. >>>>> Roughly: >>>>> 1. Set up an Azure Blob Storage account >>>>> 2. Configure Django to use the azure-storage package ( >>>>> https://django-storages.readthedocs.io/en/latest/backends/azure.html >>>>> -> don't do the static files steps) >>>>> 3. Set up Azure CDN with the storage account from step 1 as origin. >>>>> 4. Set `STATIC_URL` in settings.py to the CDN endpoint. >>>>> >>>>> >>>>> I hope this helps and please share your experiences with us :) >>>>> Vincent >>>>> >>>>> >>>>> On Tuesday, 9 October 2018 04:19:42 UTC+2, Lawrence Goh wrote: >>>>>> >>>>>> Hi! I am trying to set up the Arches Project on Azure using its Web >>>>>> App for Containers. But I hit a roadblock where I will get a '400 Bad >>>>>> Request' when browsing it. I see the Azure logs are displaying that the >>>>>> NGINX got called when I triggered it on a browser. Hope to get some >>>>>> help >>>>>> on this. Thanks. >>>>>> >>>>> -- >>>>> -- To post, send email to [email protected]. To unsubscribe, >>>>> send email to [email protected]. For more information, >>>>> visit https://groups.google.com/d/forum/archesproject?hl=en >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Arches Project" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> -- To post, send email to [email protected] <javascript:>. To >>> unsubscribe, send email to [email protected] >>> <javascript:>. For more information, visit >>> https://groups.google.com/d/forum/archesproject?hl=en >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Arches Project" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] <javascript:>. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- -- To post, send email to [email protected]. To unsubscribe, send email to [email protected]. For more information, visit https://groups.google.com/d/forum/archesproject?hl=en --- You received this message because you are subscribed to the Google Groups "Arches Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
