Lokale Docker (Wordpress) omgeving traag

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
Mijn vraag
ik zit met het probleem dat lokaal mijn wordpress omgeving in docker erg traag is wanneer ik een eigen volume path toewijs. Heb weinig kennis van docker maar hopelijk kunnen jullie mij een zetje in de goede richting geven.


Voorbeelden volume path:
Traag:
Volumes :
- ['./:/var/www/html'] or ./:/var/www/html

Snel:
Volumes:
- wp_data:/var/www/html

Alleen heb ik dan het probleem dat ik nergens de folder directory kan vinden om bijv. handmatig plugins toe te voegen etc. wanneer ik het inspecteer in docker desktop dan verwijst het path naar: /var/lib/docker/volumes/wordpress5_wp_data/_data

Relevante software en hardware die ik gebruik
- Windows 11 (SSD Drive)
- Mariadb
- WSL 2
- Docker
- Wordpress
- Docker-Compose

Wat ik al gevonden of geprobeerd heb
- Volume: Bind Mounts (toegevoegd via docker-compose.yml)
- working_dir (toegevoegd via docker-compose.yml)
- .wsl2.config memory & processors variabelen aangepast.

docker-compose.yml (wachtwoorden etc. zijn nu puur voor het testen en worden later gewijzigd)
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
services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    volumes: ['./:/var/www/html']
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin
    restart: always
    ports:
      - "8090:80"
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password
volumes:
  db_data:
  wp_data:

Beste antwoord (via impactftw op 03-05-2023 08:22)


  • ufear
  • Registratie: December 2002
  • Laatst online: 01-10 12:02
In tegenstelling tot wat hierboven genoemd wordt; er is een simpele oplossing. Je moet zorgen dat je bestanden in een WSL-VM zitten. Daar kan je vervolgens in Windows via \\wsl$ prima bij, en in Docker heb je geen last van de brakke WSL<->NTFS driver.

- Open cmd
- wsl --install Ubuntu
- In Docker Desktop - Settings -> WSL integration -> Vinkje aan bij Ubuntu
- Explorer -> \\wsl$ -> ubuntu -> home -> <jouwuser>
- Zet je bestanden die in je volume wil hebben hier neer (mag ook buiten home ofcourse)
- cmd -> wsl -> docker-compose up

Alle reacties


Acties:
  • +2 Henk 'm!

  • kutagh
  • Registratie: Augustus 2009
  • Laatst online: 22:43
Het is een bekend fenomeen dat volumes mappen van windows naar docker containers niet geweldig is voor de performance. Zoeken op "docker windows volume slow" levert genoeg resultaten op, zoals dit: https://stackoverflow.com...-adding-volumes-wordpress

Acties:
  • +1 Henk 'm!

  • knarfyboy
  • Registratie: November 2001
  • Laatst online: 16-09 14:14
Had hetzelfde met Laravel containers.

Oplossing is native Linux draaien.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-09 16:40

Janoz

Moderator Devschuur®

!litemod

Je kunt ook een sshd container toevoegen waarin je dezelfde volumes mount en vervolgens de inhoud met bv winscp beheren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Falcon
  • Registratie: Februari 2000
  • Laatst online: 29-09 08:39

Falcon

DevOps/Q.A. Engineer

Als het jou er alleen omgaat dat je toegang hebt tot de container om plugins te installeren, kan je ook een ftpserver in die Container draaien waar je bij moet kunnen.

"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"


Acties:
  • 0 Henk 'm!

  • Nutral
  • Registratie: Mei 2005
  • Laatst online: 22-09 13:05

Nutral

gamer/hardware freak

Ik raad echt aan om een virtuele machine op je pc te draaien met daarop bijv ubuntu en docker. Docker in windows is echt een klote manier om linux docker containers te draaien.

Acties:
  • +2 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Nutral schreef op maandag 1 mei 2023 @ 08:26:
Ik raad echt aan om een virtuele machine op je pc te draaien met daarop bijv ubuntu en docker. Docker in windows is echt een klote manier om linux docker containers te draaien.
Docker op Windows draait in WSL wat onder de motorkap een VM is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt ook nog kijken naar versie 1 of versie 2 van wsl, dat maakt vaak ook een verschil

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
Verwijderd schreef op dinsdag 2 mei 2023 @ 11:53:
Je kunt ook nog kijken naar versie 1 of versie 2 van wsl, dat maakt vaak ook een verschil
Draai op dit moment WSL2 zover ik kan zien in Docker Desktop. Gister via ftp verbinding gemaakt wat prima werkt echter heeft het alleen root access. Nu nog even kijken hoe ik de permissions kan veranderen zodat de ftp user volledige rechten heeft.

Acties:
  • 0 Henk 'm!

  • InfoTracer
  • Registratie: November 2001
  • Laatst online: 21:38
impactftw schreef op dinsdag 2 mei 2023 @ 12:56:
[...]


Draai op dit moment WSL2 zover ik kan zien in Docker Desktop. Gister via ftp verbinding gemaakt wat prima werkt echter heeft het alleen root access. Nu nog even kijken hoe ik de permissions kan veranderen zodat de ftp user volledige rechten heeft.
Let op dat het indexeren van je IDE dan weer trager gaat.
Zover ik weet is de enige oplossing zonder compromis op snelheid native Linux draaien.

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
InfoTracer schreef op dinsdag 2 mei 2023 @ 12:59:
[...]

Let op dat het indexeren van je IDE dan weer trager gaat.
Zover ik weet is de enige oplossing zonder compromis op snelheid native Linux draaien.
En dat zal dan ook via een Virtual Desktop/VMWare of dual boot prima gaan? 😄

Acties:
  • 0 Henk 'm!

  • InfoTracer
  • Registratie: November 2001
  • Laatst online: 21:38
impactftw schreef op dinsdag 2 mei 2023 @ 19:14:
[...]


En dat zal dan ook via een Virtual Desktop/VMWare of dual boot prima gaan? 😄
Dual boot sowieso want dan draai je native Linux. Maar een virtual Desktop of vmware kan ook als het maar Linux is. Want die mount de volume niet zoals dat met Windows en macOS wel gefaan wordt. En dit zorgt voor overhead vooral met veel kleine bestanden.

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • ufear
  • Registratie: December 2002
  • Laatst online: 01-10 12:02
In tegenstelling tot wat hierboven genoemd wordt; er is een simpele oplossing. Je moet zorgen dat je bestanden in een WSL-VM zitten. Daar kan je vervolgens in Windows via \\wsl$ prima bij, en in Docker heb je geen last van de brakke WSL<->NTFS driver.

- Open cmd
- wsl --install Ubuntu
- In Docker Desktop - Settings -> WSL integration -> Vinkje aan bij Ubuntu
- Explorer -> \\wsl$ -> ubuntu -> home -> <jouwuser>
- Zet je bestanden die in je volume wil hebben hier neer (mag ook buiten home ofcourse)
- cmd -> wsl -> docker-compose up

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
ufear schreef op dinsdag 2 mei 2023 @ 19:29:
In tegenstelling tot wat hierboven genoemd wordt; er is een simpele oplossing. Je moet zorgen dat je bestanden in een WSL-VM zitten. Daar kan je vervolgens in Windows via \\wsl$ prima bij, en in Docker heb je geen last van de brakke WSL<->NTFS driver.

- Open cmd
- wsl --install Ubuntu
- In Docker Desktop - Settings -> WSL integration -> Vinkje aan bij Ubuntu
- Explorer -> \\wsl$ -> ubuntu -> home -> <jouwuser>
- Zet je bestanden die in je volume wil hebben hier neer (mag ook buiten home ofcourse)
- cmd -> wsl -> docker-compose up
Ga ik dat straks is even proberen. Wat ik nu kan zien via het wsl$ path is dat ik twee "public" folders heb namelijk: docker-desktop en docker-desktop-data en geen Ubuntu / home / <usernaam>

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
ufear schreef op dinsdag 2 mei 2023 @ 19:29:
In tegenstelling tot wat hierboven genoemd wordt; er is een simpele oplossing. Je moet zorgen dat je bestanden in een WSL-VM zitten. Daar kan je vervolgens in Windows via \\wsl$ prima bij, en in Docker heb je geen last van de brakke WSL<->NTFS driver.

- Open cmd
- wsl --install Ubuntu
- In Docker Desktop - Settings -> WSL integration -> Vinkje aan bij Ubuntu
- Explorer -> \\wsl$ -> ubuntu -> home -> <jouwuser>
- Zet je bestanden die in je volume wil hebben hier neer (mag ook buiten home ofcourse)
- cmd -> wsl -> docker-compose up
Top het is gelukt ;) Heb nog wel wat issues met het activeren van de plugins (wit scherm) maar daar ga ik even verder naar kijken. Verder werkt het nu gelukkig wel vlot en kan ik gewoon bij de bestanden ;) Bedankt!

Acties:
  • 0 Henk 'm!

  • ufear
  • Registratie: December 2002
  • Laatst online: 01-10 12:02
impactftw schreef op dinsdag 2 mei 2023 @ 22:38:
[...]


Top het is gelukt ;) Heb nog wel wat issues met het activeren van de plugins (wit scherm) maar daar ga ik even verder naar kijken. Verder werkt het nu gelukkig wel vlot en kan ik gewoon bij de bestanden ;) Bedankt!
Ownership van files, en wellicht flags ook, werken in ieder geval in mijn out-of-the-box geval niet in alle gevallen even lekker. Wellicht heb je daar last van en moet je uid/gid's van je containers op 1000 zetten - zelf nog niet ingedoken, maar in die hoek valt denk ik nog wat winnen.

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
ufear schreef op dinsdag 2 mei 2023 @ 23:30:
[...]


Ownership van files, en wellicht flags ook, werken in ieder geval in mijn out-of-the-box geval niet in alle gevallen even lekker. Wellicht heb je daar last van en moet je uid/gid's van je containers op 1000 zetten - zelf nog niet ingedoken, maar in die hoek valt denk ik nog wat winnen.
Gister een tijd mee zitten "Kl*ten" maar helaas geen resultaat. Ik krijg voor geen mogelijkheid permission's op de folder.

code:
1
drwxr-xr-x  8 1000 1001  4096 May  3 17:48 wp-content


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
49
50
51
52
53
version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite

  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
      MAX_EXECUTION_TIME: 30
    networks:
      - wpsite

  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    user: "1000:1000"
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:
  wp_data:

Acties:
  • 0 Henk 'm!

  • ufear
  • Registratie: December 2002
  • Laatst online: 01-10 12:02
impactftw schreef op woensdag 3 mei 2023 @ 20:11:
[...]


Gister een tijd mee zitten "Kl*ten" maar helaas geen resultaat. Ik krijg voor geen mogelijkheid permission's op de folder.

code:
1
drwxr-xr-x  8 1000 1001  4096 May  3 17:48 wp-content


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
49
50
51
52
53
version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite

  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
      MAX_EXECUTION_TIME: 30
    networks:
      - wpsite

  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    user: "1000:1000"
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:
  wp_data:
Ik heb mijn data vanuit de Linux-WSL ge-git-cloned; dus wellicht daarom geen problemen met mijn (js - dus NodeJS image) code. Kopieer jij de boel vanuit windows?

Lijkt er iig op dat je uid in de omgeving waar je die `ls` gedaan hebt niet bekend is, dus waarschijnlijk fout - is dat in je container of in je WSL? In ieder geval; mijn user in WSL is standaard 1000 en die is dan ook gelijk aan mijn windows username; ik heb dus last met files met de database map.

`ls` vanuit WSL laat zien dat daar iets geks aan de hand is.
code:
1
2
drwx------ 19  999 koen 4.0K Apr 30 15:56 database
drwxr-xr-x  2 koen koen 36K Apr 30 16:05 files


`cat /etc/passwd` vanuit de database container;
code:
1
postgres:x:999:999::/var/lib/postgresql:/bin/bash


Ik gok dat als ik de postgres user in de database container gid 1000 kan laten zijn ipv 999 (https://github.com/docker...12/15/bullseye/Dockerfile) dat alles in mijn geval goed zou gaan.

Hoe je dat bij jouw images voor elkaar krijgt weet ik echter niet, of dat het probleem ook 100% oplost ook niet.

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
Langzamerhand toch over na te denken om een native Ubuntu "dual boot" op te zetten of toch gewoon bij xampp te blijven om lokaal wordpress omgevingen te draaien..

Acties:
  • 0 Henk 'm!

  • luukvr
  • Registratie: Juni 2011
  • Niet online
Linux over WSL is ook best wel een memory leak met standaard instellingen. Omdat WSL er voor zorgt dat de omgeving soort van flexibele geheugen krijgt en Linux aan harddisk caching doet blijft je geheugen eigenlijk maar vollopen. Tot op een gegeven moment swap gebruikt moet worden en dan ben je klaar. Wat bij mij erg hielp is een maximum geheugen instellen voor WSL. Dan gaan de linux distro's daarop sneller over om harddisk cache her te gebruiken ipv maar meer flexibel geheugen te vragen.

Acties:
  • 0 Henk 'm!

  • impactftw
  • Registratie: Juli 2011
  • Nu online
luukvr schreef op vrijdag 5 mei 2023 @ 15:05:
Linux over WSL is ook best wel een memory leak met standaard instellingen. Omdat WSL er voor zorgt dat de omgeving soort van flexibele geheugen krijgt en Linux aan harddisk caching doet blijft je geheugen eigenlijk maar vollopen. Tot op een gegeven moment swap gebruikt moet worden en dan ben je klaar. Wat bij mij erg hielp is een maximum geheugen instellen voor WSL. Dan gaan de linux distro's daarop sneller over om harddisk cache her te gebruiken ipv maar meer flexibel geheugen te vragen.
Ah oke. Gebruik jij het ook icm een wordpress omgeving? En maak jij dan een aparte docker container omgeving aan bijv. Ubuntu/home/“user”/development/wordpress??
Pagina: 1