【问题标题】:PHP Artisan in docker is extremely slowdocker中的PHP Artisan非常慢
【发布时间】:2020-02-20 20:30:41
【问题描述】:

我是 Docker 的新手,但我想使用它来更轻松地组织我的生产环境。我需要一个包含 NGINX、PHP 7.2 和 Node(以及其他一些)的环境;经过一番挖掘,我使用了 docker-compose:

version: '0.2'
restart: always
services:
    web:
        image: nginx:latest
        container_name: NGINX
        ports:
            - "80:80"
        volumes:
            - ./code:/code
            - ./nginx/conf.d/site.conf:/etc/nginx/conf.d/site.conf
            - ./nginx/sites-enabled:/etc/nginx/sites-enabled
        links:
            - php
    php:
        build: ./php
        container_name: PHP7.2
        volumes:
            - ./code:/code
    composer:
        image: composer:latest
        container_name: Composer
        volumes:
            - ./code:/code
    node:
        build: ./node
        container_name: Node
        volumes:
            - ./code:/code

当我运行sudo docker-compose up 时,一切正常,但是由于我使用的是 Laravel (5.5) 应用程序,所以我有一些工匠命令。一些命令扫描所有应用程序文件以填充数据库,与我的本地环境(Vagrant)相比,这个过程非常慢(慢了 10 倍)。

我研究过,显然卷存在一些性能问题;我试过 docker-sync 但没有任何改变。我真的很想完成这项工作,但我不知道发生了什么。

【问题讨论】:

  • 如果您修改了问题以添加运行 Docker 的主机操作系统,这将有所帮助。此外,“慢”是一个相对术语。展示一些基准测试(可能只是使用 unix time 命令)会很好地显示您在 Vagrant 下本机运行的命令,然后在 Docker 下进行比较。如果您要与 Vagrant 进行比较,了解 Vagrant 配置(Vagrantfile 和您运行的任何其他 Vagrant 特定命令)也会很有帮助。但总的来说,与 Linux 原生相比,Mac 上的 Docker 和 Windows 上的 Docker 的容量性能相当糟糕。
  • 我有一个类似的设置,我们将所有 composer install、update 和 requires 命令包装到一个 php 容器中(目标是通过 docker 容器统一开发人员环境),mac 和以 ubuntu 为例...

标签: laravel docker docker-compose


【解决方案1】:

相信这个post可以帮到你。

我只是将标志 :cached 放在映射卷中,速度提升相当可观,但还不是更好的解决方案。

【讨论】:

  • 标志实际上是 :cached 并且正如你所说的改进是最小的
猜你喜欢
  • 2021-12-19
  • 2019-11-25
  • 2020-09-21
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 2019-09-09
  • 2022-11-03
  • 2022-01-22
相关资源
最近更新 更多