@ ucan-lab [Docker x Laravel fait exploser Docker pour Mac](https://qiita.com/ucan-lab/items/ La proposition 4 de a88e2e5c2a79f2426163) a été vérifiée sous Windows 10.
Proposition 4. Utiliser le montage en volume
- [JavaScript] Comment rendre l'opération npm / yarn 10 fois plus rapide sur Docker
- Docker-compose: node_modules not present in a volume after npm install succeeds
Un plan pour stocker les données fournisseur et node_modules dans un volume nommé et les gérer séparément du côté hôte et du côté conteneur. Le traitement de synchronisation n'ayant pas lieu, il sera plus rapide.
Ajoutez le paramètre de montage de volume à docker-compose.yml et comparez les installations de composer et de npm. Cet article n'aborde pas les raisons pour lesquelles il est plus rapide.
Nous comparons respectivement les vitesses de «composer install» et de «npm install».
$ time composer install
real 6m26.446s -> 0m57.445s # 6.7 fois
user 0m9.375s -> 0m3.035s
sys 0m51.148s -> 0m1.544s
$ time npm install
real 1m31.764s -> 0m22.720s # 4.0 fois
user 0m46.022s -> 0m23.705s
sys 0m32.465s -> 0m13.917s
4 à 7 fois plus rapide dans l'environnement Windows 10! Ce n'était pas 20 fois plus que le référent Mac, mais je suis heureux que l'ajout de quelques lignes soit assez rapide!
--Windows 10 Home version 2004 (build du système d'exploitation 19041.508)
L'article suivant sera utile pour créer l'environnement. Windows Subsystem for Linux Installation Guide for Windows 10 Utilisation de WSL 2 + Docker sur Windows 10 Famille | Qiita
Validez à l'aide de l'environnement de développement Laravel + Nginx + MySQL. Les détails sont disponibles sur Blog.
Composer et package.json sont dans l'état de la création du projet à l'installation d'Inertia de laravel / jetstream.
La vitesse est comparée avec et sans la ligne de commentaire ʻadd`.
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
La procédure d'exécution est la même que la source de référence. Veuillez lire le chemin.
Recommended Posts