You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建适配PHP8.1/8.2的Docker容器并部署Laravel 10

解决方案:用Docker搭建独立的Laravel 10开发环境

完全可行,Docker的环境隔离特性刚好能满足你同时维护不同PHP版本Laravel项目的需求,不用改动本地XAMPP配置。下面是具体操作步骤:

1. 新建项目目录

在本地任意位置创建一个独立文件夹(比如laravel10-docker),后续所有操作都在这个目录下进行。

2. 编写Docker Compose配置文件

在项目根目录创建docker-compose.yml文件,定义PHP、Nginx、MySQL(可选)的服务配置:

version: '3.8'

services:
  # PHP服务(适配Laravel 10要求的8.1版本)
  php:
    build:
      context: .
      dockerfile: Dockerfile.php
    volumes:
      - ./src:/var/www/html
    working_dir: /var/www/html

  # Nginx服务(处理HTTP请求转发)
  nginx:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php

  # MySQL数据库服务(Laravel项目需要数据库时启用)
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: laravel10
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - "3307:3306"

volumes:
  mysql-data:

3. 编写PHP扩展安装脚本

在项目根目录创建Dockerfile.php,用来安装Laravel 10依赖的PHP扩展及Composer:

FROM php:8.1-fpm-alpine

# 安装系统依赖和PHP扩展
RUN apk add --no-cache \
    git \
    curl \
    libpng-dev \
    libjpeg-turbo-dev \
    libwebp-dev \
    zlib-dev \
    libzip-dev \
    && docker-php-ext-configure gd --with-jpeg --with-webp \
    && docker-php-ext-install gd pdo_mysql zip

# 安装最新版Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

4. 配置Nginx反向代理

在项目根目录创建nginx文件夹,里面新建default.conf文件:

server {
    listen 80;
    server_name localhost;
    root /var/www/html/public;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

5. 构建并启动容器

打开终端进入项目根目录,执行以下命令启动所有服务:

docker-compose up -d --build

6. 在容器内安装Laravel 10

执行命令进入PHP容器:

docker-compose exec php bash

进入容器后,运行Composer命令创建Laravel 10项目:

composer create-project laravel/laravel . "10.*"

安装完成后输入exit退出容器。

7. 配置Laravel环境

进入本地src文件夹,复制.env.example为.env,修改数据库配置项:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel10
DB_USERNAME=laravel
DB_PASSWORD=laravel

然后执行容器内的Artisan命令生成应用密钥:

docker-compose exec php php artisan key:generate

8. 访问Laravel项目

在浏览器中访问http://localhost:8080,即可看到Laravel 10的欢迎页面。

日常开发注意事项

  • 所有Laravel相关命令(如artisan、composer)都需要通过容器执行,示例:
    docker-compose exec php php artisan migrate
    docker-compose exec php composer require package-name
    
  • 本地src文件夹就是Laravel项目根目录,直接用本地编辑器修改代码,容器内会实时同步。
  • 停止容器用docker-compose down,重启用docker-compose restart。

内容的提问来源于stack exchange,提问作者fahico98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:20:20