Toon posts:

[Docker] conflict bind mount en docker volume?

Pagina: 1
Acties:

Vraag


  • egonolieux
  • Registratie: Mei 2009
  • Laatst online: 01-06 21:14

egonolieux

Professionele prutser

Topicstarter
Ik ben een symfony webapplicatie aan het migreren naar docker en heb hier een aantal problemen/vragen bij. Het is de bedoeling dat mysql, nginx en de app zelf in verschillende containers zitten. De applicatiecontainer heeft beiden php-fpm en nodejs geinstalleerd.

Het probleem waar ik momenteel op stoot, is dat zowel de nginx als de app (php-fpm) container gedeeld toegang moeten krijgen tot de document root. De reden hiervoor is dat de document root een hele boel assets bevat, die zowel statisch aangeboden moeten worden door nginx als bewerkt moeten kunnen worden door php. Als oplossing dacht ik een docker volume te maken van enkel de document root, waardoor de containers gedeeld aan de bestanden kunnen, maar hier duikt een nieuw probleem op waar ik niet goed weg mee weet.

Eerst en vooral, om wat meer duidelijkheid te scheppen, is dit mijn projectstructuur: https://image.prntscr.com/image/1tqFVaJ6TLuvAYP0E_j5jg.png.

Mijn dockerfiles zijn universeel voor zowel development als production, en voor elk van deze environments heb ik een docker compose bestand. Binnen het docker compose bestand voor development zou er een bind mount voorzien moeten worden naar de app container (`./:/var/www/app`), en hier zit mijn verwarring:

Als er een bind mound is naar de gehele directory, wat gebeurt er dan met het docker volume naar de document root (public map)? Dit is trouwens enkel een probleem binnen de development environment, omdat bij production die bind mount niet nodig is. Is het mogelijk eerst de bind mount te maken om vervolgens in die bind mount de document root (public) te overriden zodat daar het docker volume gebruikt wordt?

Een mogelijke oplossing lijkt me simpelweg de document root uit de bestandshierarchie verwijderen (2 mappen `public` en `app`), maar ik weet niet of symfony hier gelukkig mee zal zijn. Ik zou natuurlijk ook gewoon van de nginx en app containers 1 container kunnen maken, maar ik wil eerst weten of er een (betere) oplossing is voor bovenstaande probleemstelling.


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee