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 <larry...@gmail.com 
> <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 <meijer....@gmail.com 
>> <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 <meijer....@gmail.com> 
>>>> 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 arches...@googlegroups.com. To unsubscribe, 
>>>>> send email to archesprojec...@googlegroups.com. 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 archesprojec...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> -- 
>>> -- To post, send email to arches...@googlegroups.com <javascript:>. To 
>>> unsubscribe, send email to archesprojec...@googlegroups.com 
>>> <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 archesprojec...@googlegroups.com <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>

-- 
-- To post, send email to archesproject@googlegroups.com. To unsubscribe, send 
email to archesproject+unsubscr...@googlegroups.com. 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 archesproject+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to