Docker x Laravel Wahnsinnig langsamer Docker für Windows explodiert

@ ucan-labs [Docker x Laravel lässt Docker für Mac explodieren](https://qiita.com/ucan-lab/items/ Vorschlag 4 von a88e2e5c2a79f2426163) wurde unter Windows 10 überprüft.

Vorschlag 4. Verwenden Sie Volume Mount

Ein Plan zum Speichern von Hersteller- und Knotenmoduldaten in einem benannten Volume und zum separaten Verwalten dieser Daten von der Host- und Containerseite. Da keine Synchronisationsverarbeitung stattfindet, ist diese schneller.

Fügen Sie die Volume-Mount-Einstellung zu docker-compose.yml hinzu und vergleichen Sie die Composer- und npm-Installationen. In diesem Artikel wird nicht angesprochen, warum es schneller ist.

Ergebnis

Wir vergleichen die Geschwindigkeiten von "Composer Install" bzw. "Npm Install".

$ time composer install
real    6m26.446s  -> 0m57.445s  # 6.7 mal
user    0m9.375s   -> 0m3.035s
sys     0m51.148s  -> 0m1.544s

$ time npm install
real    1m31.764s  -> 0m22.720s  # 4.0 mal
user    0m46.022s  -> 0m23.705s
sys     0m32.465s  -> 0m13.917s

4-7 mal schneller in Windows 10-Umgebung! Es war nicht 20 Mal so viel wie der Referrer Mac, aber ich bin froh, dass es schnell genug ist, nur ein paar Zeilen hinzuzufügen!

Umgebung

Host-Betriebssystemumgebung

Der folgende Artikel ist hilfreich beim Aufbau der Umgebung. Windows Subsystem for Linux Installation Guide for Windows 10 Verwenden von WSL 2 + Docker unter Windows 10 Home | Qiita

Container

Validieren Sie mit der Laravel + Nginx + MySQL-Entwicklungsumgebung. Details finden Sie auf Blog.

Composer und package.json befinden sich von der Projekterstellung bis zur Installation von Inertia of laravel / jetstream im Status.

Überprüfen Sie docker-compose.yml

Die Geschwindigkeit wird mit und ohne den Kommentar add verglichen.


version: '3'

volumes: # add
  vendor-store: # add
  node_modules-store: # add

services:
  php:
    container_name: php
    build: ./docker/php
    volumes:
    - ./web:/var/www
    - vendor-store:/var/www/laravel/vendor # add
    - node_modules-store:/var/www/laravel/node_modules # add
    environment:
      TZ: Asia/Tokyo

  nginx:
    image: nginx
    container_name: nginx
    ports:
    - 80:80
    volumes:
    - ./web:/var/www
    - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
    - php

  db:
    image: mysql:8.0
    container_name: db
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: database
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: 'Asia/Tokyo'
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
    - ./docker/db/data:/var/lib/mysql
    - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
    - ./docker/db/sql:/docker-entrypoint-initdb.d
    ports:
    - 3306:3306

Die Ausführungsprozedur ist dieselbe wie die Referenzquelle. Bitte lesen Sie den Pfad.

Recommended Posts

Docker x Laravel Wahnsinnig langsamer Docker für Windows explodiert
Erstellen Sie einen Container für Docker x Laravel phpMyAdmin
Docker für Mac Slow: Gegenmaßnahme II
Docker Desktop für Windows 2.4.0.0 (48506) Startfehler nach dem Update
Bedienen Sie Docker Desktop für Windows mit Linux (WSL)
[Docker für Windows] Die Docker-App funktioniert plötzlich nicht mehr ...
Docker + Laravel + Codeception
Automatisches Neuladen des Docker x Laravel-Browsers (Austausch des Hot-Moduls)
Aktuelle (2020/08) Docker für Mac-Dateizugriff langsame Problemnotiz