在 Laravel 项目中如何以及为何使用 Docker?
Source: Dev.to
为什么在 Laravel 项目中应使用 Docker?
每个后端开发者在职业生涯的某个阶段都不得不使用 XAMPP、WAMP 或手动安装的 Linux 服务(Apache、PHP‑FPM)。这种经验表明 “在我的电脑上可以运行” 的借口已经不再适用于现代编程。每次从零搭建本地环境、处理包版本冲突都是在浪费时间。
随着项目规模扩大、团队协作以及部署到不同的服务器环境,旧的 “本地安装” 方式会导致严重问题:代码在我的电脑上能跑,为什么在服务器上崩溃? 这个问题正是由此产生。
Docker 解决了这一问题。Docker 将软件及其运行所需的全部依赖打包进称为 “容器” 的隔离、标准化的单元中。
隔离
- PHP、MySQL 和 Redis 各自运行在独立的容器中。
- 不会相互干扰,也不会影响你的操作系统配置。
- 系统始终保持干净。
可移植性与稳定性
- 在 Linux 上编写的代码和架构,团队成员的 Windows、Mac 或生产服务器上也能以同样的方式运行。
- 不会出现意外。
可复用
- 不需要为每个新项目从头配置
php.ini或my.cnf。 - 一个
docker‑compose.yml文件即可描述并自动化整个架构。
Laravel Sail:最简洁、最清晰的方式
从零学习 Docker 并编写复杂的 Dockerfile 可能会耗费时间。如果没有特殊需求,Laravel Sail 可以简化这一过程。
创建新项目
curl -s "https://laravel.build/menim-yeni-layihem" | bash
此命令在后台创建一个新的 Laravel 项目,并准备好所需的 Docker 容器。
为已有项目添加 Sail
composer require laravel/sail --dev
php artisan sail:install
这两个步骤会询问你在项目中需要哪些服务,并在项目目录下生成 docker-compose.yml 文件。
启动容器
./vendor/bin/sail up -d
-d 参数让容器以 detached mode(后台)方式运行。此后不再需要打开 XAMPP 的控制面板,或去寻找 “Apache 为什么报错?” 的答案。使用 Laravel Sail,你可以获得干净、现代且在任何地方都表现一致的架构。