6

我怎样才能重新创建这个?

从Laravel 8 文档Laravel Sail 文档创建安装。

我使用该sail up命令,效果很好。该命令构建 docker 容器,连接它们,并使开发变得像我们想象的那样简单,特别是对于 VSCode,这工作正常,但使用 WSL2 开发速度很慢。我的意思是像“sail npm run dev”这样的命令。关于如何加快速度的任何想法?

仅供参考:在同一台机器上运行的同一个项目至少快 10 倍。有关更多信息,我在 i9-10900X、32 GB RAM 的 Docker Desktop for Windows 10 上运行了测试。

码头工人-compose.yml

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
            - redis
    mysql:
        image: 'mysql:8.0'
        ports:
            - '${DB_PORT}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailmysql:/var/lib/mysql'
        networks:
            - sail
    redis:
        image: 'redis:alpine'
        ports:
            - '${REDIS_PORT}:6379'
        volumes:
            - 'sailredis:/data'
        networks:
            - sail
    mailhog:
        image: 'mailhog/mailhog:latest'
        ports:
            - 1025:1025
            - 8025:8025
        networks:
            - sail
networks:
    sail:
        driver: bridge
volumes:
    sailmysql:
        driver: local
    sailredis:
        driver: local
4

2 回答 2

12

如果可能,您应该从 WSL2 运行 docker。

  1. 安装dockerWSL2
  2. \\wsl$\在我的情况下,通过在资源管理器中打开并导航到 VM 的主页,将您的项目移动到 WSL\\wsl$\Ubuntu-20.04\home\thomas

在此处输入图像描述

  1. 运行docker-compose up -d/sail up从 VM

在此处输入图像描述

于 2020-12-10T14:55:39.657 回答
1

我打算解释一下,但只是去这里自己阅读。这对我有帮助。当我在默认位置打开一个项目并给我这个链接时,VSCode 有点对我大喊大叫。 https://docs.microsoft.com/en-us/windows/wsl/compare-versions

跨操作系统文件系统的性能

我们建议您不要跨操作系统处理您的文件,除非您有特定的理由这样做。如果您在 Linux 命令行(Ubuntu、OpenSUSE 等)中工作,为了获得最快的性能速度,请将文件存储在 WSL 文件系统中。如果您在 Windows 命令行(PowerShell、命令提示符)中工作,请将文件存储在 Windows 文件系统中。

例如,在存储 WSL 项目文件时:

  • 使用 Linux 文件系统根目录:\\wsl$\Ubuntu-18.04\home\<user name>\Project
  • 不是 Windows 文件系统根目录:C:\Users\<user name>\Project

所有当前运行的发行版 ( wsl -l) 都可以通过网络连接访问。要到达那里,请运行命令 [WIN+R](键盘快捷键)或在文件资源管理器地址栏中键入\\wsl$以查找相应的分发名称并访问其根文件系统。

您还可以在 WSL 的 Linux终端中使用 windows 命令。尝试打开 Linux 发行版(即 Ubuntu),通过输入以下命令确保您位于 Linux 主目录中cd ~:然后通过输入在文件资源管理器中打开您的 Linux 文件系统(不要忘记末尾的句点):powershell.exe /c start .

于 2021-03-08T22:03:41.803 回答