@ 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
- [JavaScript] So beschleunigen Sie den npm / yarn-Betrieb auf Docker zehnmal
- Docker-compose: node_modules not present in a volume after npm install succeeds
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.
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!
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
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.
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