您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        # 如何使用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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。