Docker - 3x webapp, shared /var/www root

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 30-09 00:39

Crazy-

Best life ever

Topicstarter
Al enkele avondjes aan het knutselen met Docker en ondertussen veel kennis opgedaan!
Voor het lokaal ontwikkelen van een website zit ik echter met een uitdaging....

Situatie
- 3x een php (Laravel) website
- ./site1 (api + core)
- ./site2 (main site)
- ./site3 (cms)

Waarbij site2 & site3 een (directe) PSR4 namespace gebruiken vanuit site1 (Dont ask why... oud project) maar een goede case voor nu gelijk :-)

Doel
- 3 losse containers
- 1:1 data binding hebben met mijn host (ivm live development)
- 1 shared /var/www/ via een volume waarbij ik per conainer de volgende submappen bind:
--- /var/www/site1
--- /var/www/site2
--- /var/www/site3

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
version: '3'
services:

  httpd:
    container_name: sites_httpd
    build:
      context: ./
      dockerfile: Dockerfile

  core:
    container_name: site-1-core
    build:
      context: ../site1/.docker
      dockerfile: Dockerfile
    working_dir: /var/www/site1-core
    ports:
      - 8081:80
    volumes:
      - sites_volume:/var/www
      - ./:/var/www/site1-core

  site2:
    container_name: site2
    build:
      context: ../site2/.docker
      dockerfile: Dockerfile
    working_dir: /var/www/site2
    ports:
      - 8082:80
    volumes:
      - sites_volume:/var/www
      - ./:/var/www/site2

  site3:
    container_name: site3
    build:
      context: ../site3/.docker
      dockerfile: Dockerfile
    working_dir: /var/www/site3
    ports:
      - 8083:80
    volumes:
      - sites_volume:/var/www
      - ./:/var/www/site3

volumes:
  sites_volume:
    external: true


Dockerfile per site:

code:
1
2
3
4
5
FROM sites_httpd:latest

WORKDIR /var/www/site*

COPY vhost.conf /etc/apache2/sites-available/000-default.conf


helaas werkt dit niet zoals ik hoop. Ik zie wel de correcte data per container in de submap site*/
maar ik zie per container niet de data van de anderen

de bovenste sites_httpd heb ik nu puur en alleen om de eerste image te bouwen.

ik draai inderdaad PER container nog een apache webserver. Niet ideaal, maar staat volgens mij nu even los van de shared volume 8)7

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 30-09 22:30

Hero of Time

Moderator LNX

There is only one Legend

Het doet toch precies wat je opgeeft dat het moet doen? Bij elke container geef je alleen op dat het je sitex moet meenemen als volume. Meer niet. Als je site2 en site3 bij container1 wilt hebben, moet je die natuurlijk wel opgeven als volume.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 30-09 00:39

Crazy-

Best life ever

Topicstarter
Hero of Time schreef op dinsdag 12 juni 2018 @ 07:24:
Het doet toch precies wat je opgeeft dat het moet doen? Bij elke container geef je alleen op dat het je sitex moet meenemen als volume. Meer niet. Als je site2 en site3 bij container1 wilt hebben, moet je die natuurlijk wel opgeven als volume.
Ik map toch de hele volume mee? Dan zou ik toch nu al de submappen en data moeten terugzien op elke container?

Of dien ik werkelijk elke submap te mappen per container. Dat lijkt me stug?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 30-09 22:30

Hero of Time

Moderator LNX

There is only one Legend

Als je alleen data van de betreffende site ziet die je in je config noemt, dan map je dus niet heel /var/www naar je container. Dus of je mapt elke site apart, of je mapt de bovenliggende map.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 30-09 00:39

Crazy-

Best life ever

Topicstarter
Hero of Time schreef op dinsdag 12 juni 2018 @ 08:07:
Als je alleen data van de betreffende site ziet die je in je config noemt, dan map je dus niet heel /var/www naar je container. Dus of je mapt elke site apart, of je mapt de bovenliggende map.
het gekkie is dat wel de map zie...
op site2 zie ik de MAP van site1, maar niet de inhoud (rechten misschien?(

ik map dus eerst /var/www/ via de site_volume op elke container
daarna map ik de volle inhoud per site naar de de container (/site_volumes//var/www/site*)

al met al. zeg je dus dat ik waarschijnlijk wel alles goed doe?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Nila
  • Registratie: Juli 2005
  • Niet online

Nila

Idiot!

Ik maak gebruik van Laradock. Hiermee kun je ook het resultaat bereiken wat je zoekt?

Structuur:

websites/laradock
websites/site1 (api + core)
websites/site2 (main site)
websites/site2 (cms)

Config bestanden:

websites/laradock/nginx/sites/

site1.api.core.conf
site2.main.site.conf
site3.cms.conf

Instellingen van de conf:

listen 80;
listen [::]:80;

server_name site1-api-core.test;
root /var/www/site1/public;
index index.php index.html index.htm;

... Rest van de config file ....

Zo maak je voor elke site een conf aan.

Hostfile aanpassen:

127.0.0.1 site1-api-core.test
127.0.0.1 site2-main-site.test
127.0.0.1 site3-cms.test

De nodige zaken opnieuw builden en u kunt aan de slag.

Als alles draait zijn de websites te benaderen via:

site1-api-core.test
site2-main-site.test
site3-cms.test

[ Voor 90% gewijzigd door Nila op 12-06-2018 09:34 ]

You're not completely useless, you can always serve as a bad example!


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 30-09 00:39

Crazy-

Best life ever

Topicstarter
Bedankt voor de reacties

Of Laradock helemaal past in dit plaatje weet ik nog niet. Het voelt voor mij deels beperkt en gefocust op Laravel.

Maar weer wat ideeën. Ik ga per site eens alle volumes koppelen. Zien of dat de oplossing biedt

Derhalve verbaasd het me nog wel:

je kan dus een volume toewijzen als shared storage waarbij elke container kan lezen en schrijven. Dat doe ik nu in elke container. (Door shared_sites te koppelen aan /var/www

Dan lijkt het mij logisch dat als ik dan vanaf container 1 iets wegschrijf daarin (...) deze beschikbaar moet zijn in de andere container via hetzelfde volume !?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
code:
1
./:/var/www/site1-core


Een beetje off-topic, maar is het wel wenselijk om je lokale files direct te mappen naar de Docker-container? In mijn ervaring maakt dat alles juist tergend traag.

Volgens mij moet je iets als docker-sync hebben wat je gewijzigde files automatisch naar je container kopieert.

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 30-09 00:39

Crazy-

Best life ever

Topicstarter
Tsunami schreef op woensdag 13 juni 2018 @ 09:29:
code:
1
./:/var/www/site1-core


Een beetje off-topic, maar is het wel wenselijk om je lokale files direct te mappen naar de Docker-container? In mijn ervaring maakt dat alles juist tergend traag.

Volgens mij moet je iets als docker-sync hebben wat je gewijzigde files automatisch naar je container kopieert.
Lokale development gaat het om. Dan is dit geen issue. In zeker zin; op macOS is het wel een issue. Een keer in verdiept had te maken met rsync (of juist niet)

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu

Pagina: 1