【发布时间】: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