Excellent news, glad to hear it! On Fri, 12 Oct 2018, 02:41 Lawrence Goh, <[email protected]> wrote:
> Hi Vincent, > > Thank you so much for all the help and information. I finally got it > running on Azure. Adding on, I have changed the ports back to 8000:8000. > > Thanks again. > > Regards, > Lawrence > > On Thu, Oct 11, 2018 at 8:11 PM Vincent Meijer <[email protected]> > wrote: > >> In your case the Azure Web App takes on the role of Nginx, so you don't >> need that. >> Gunicorn is already built into the Arches image (see the command in the >> entrypoint.sh), which is going to talk to your Web App. >> >> >> Regarding whitenoise, you don't need to set STATIC_ROOT, as it is already >> set for you (see docker/settings_local.py). Default value is / >> static_root which is fine. >> Also, don't add the 'from whitenoise import WhiteNoise' line to your >> wsgi.py file, those steps are for other systems besides Django (skip >> everything after 'QuickStart for other WSGI apps'). >> >> Tip: you can add whitenoise to your requirements.txt so you have all your >> requirements in one place, preferably with a version number: >> whitenoise==4.1 >> Then remove it from your entrypoint.sh >> >> If you can't get it to work: start with the simplest set up. >> You can first try to get it running locally instead of in Azure Web App. >> Perhaps first with DJANGO_MODE=DEV and DJANGO_DEBUG=True (in your >> docker-compose.yml) >> With those settings you don't need Whitenoise (but dev mode is not safe >> for production environments). >> If that works, set those settings back to PROD and False and try to get >> Whitenoise working. >> Then if that works, move over to Web App. >> >> Also be sure to remove nginx from your local docker-compose.yml, since >> your goal is to run Arches without it in your Web App. >> >> Good luck and let me know how it goes! >> Vincent >> >> On Thursday, 11 October 2018 05:48:18 UTC+2, Lawrence Goh wrote: >>> >>> Hi Vincent, >>> >>> I found more info on gunicorn and nginx. it seems they need each other. >>> >>> >>> https://stackoverflow.com/questions/12800862/how-to-make-django-serve-static-files-with-gunicorn >>> >>> What do you think? >>> >>> Thanks. >>> >>> Regards, >>> Lawrence >>> >>> On Thu, Oct 11, 2018, 3:58 PM Lawrence Goh <[email protected]> wrote: >>> >>>> Hi Vincent, >>>> >>>> I am trying to have whitenoise in. Have you done it before? >>>> >>>> I have modified entrypoint.sh to include 'pip install whitenoise' after >>>> the virtual environment creation. Modified settings.py to have STATIC_ROOT >>>> with this 'os.path.join(ROOT_DIR, 'staticfiles') and the entry in >>>> MIDDLEWARE. Plus, wsgi.py file to have 'from whitenoise import >>>> WhiteNoise'. >>>> >>>> Unsure if anywhere else was missed. >>>> >>>> Thanks. >>>> >>>> Regards, >>>> Lawrence >>>> >>>> On Wed, Oct 10, 2018 at 9:09 PM Vincent Meijer <[email protected]> >>>> wrote: >>>> >>>>> 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]> >>>>>> 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]> 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]. 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]. 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]. 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]. 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.
