@ 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