您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何使用Docker搭建Laravel本地环境
## 前言
在现代Web开发中,Docker已成为构建标准化开发环境的利器。对于Laravel开发者而言,使用Docker可以快速搭建包含PHP、MySQL、Redis等服务的完整环境,避免"在我机器上能运行"的经典问题。本文将详细介绍如何通过Docker Compose搭建Laravel本地开发环境。
## 环境准备
在开始之前,请确保你的系统已安装以下工具:
- Docker Desktop([Windows/Mac](https://www.docker.com/products/docker-desktop))
- Git(可选,用于克隆Laravel项目)
- 终端工具(Windows用户推荐使用Git Bash)
验证Docker安装:
```bash
docker --version
docker-compose --version
建议采用以下目录结构:
/laravel-docker
├── docker-compose.yml
├── php/
│ └── Dockerfile
├── nginx/
│ ├── nginx.conf
│ └── sites/
│ └── laravel.conf
├── mysql/
│ └── my.cnf
└── src/(Laravel项目代码)
version: '3.8'
services:
# PHP服务
app:
build:
context: ./php
dockerfile: Dockerfile
volumes:
- ./src:/var/www/html
networks:
- laravel-network
# Web服务器
webserver:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./nginx/sites:/etc/nginx/conf.d
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
networks:
- laravel-network
# 数据库
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: rootsecret
volumes:
- mysql_data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- "3306:3306"
networks:
- laravel-network
# Redis缓存
redis:
image: redis:alpine
ports:
- "6379:6379"
networks:
- laravel-network
volumes:
mysql_data:
driver: local
networks:
laravel-network:
driver: bridge
FROM php:8.1-fpm
# 安装系统依赖
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip
# 清除缓存
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# 安装PHP扩展
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# 安装Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 设置工作目录
WORKDIR /var/www/html
nginx/sites/laravel.conf
:
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
docker-compose up -d db redis
docker-compose run --rm app composer create-project laravel/laravel src
docker-compose run --rm app chmod -R 777 src/storage src/bootstrap/cache
.env
文件:DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret
REDIS_HOST=redis
docker-compose up -d
访问 http://localhost:8080 应该能看到Laravel欢迎页面。
运行数据库迁移测试:
docker-compose exec app php artisan migrate
docker-compose exec app bash
docker-compose ps
docker-compose down
docker-compose up -d --build
docker-compose.yml
中的端口映射docker-compose logs [服务名]
通过Docker搭建的Laravel环境具有高度可移植性和一致性,团队成员可以快速共享相同的开发环境。后续可以进一步优化Docker配置,或将其集成到CI/CD流程中。
提示:本文配置适用于开发环境,生产环境需要额外考虑安全性和性能优化。 “`
这篇文章提供了从零开始搭建Laravel Docker环境的完整指南,包含详细的配置示例和实用命令。您可以根据实际需求调整PHP版本、数据库类型等配置参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。