在数字化时代,快速且稳定地部署应用程序是每个开发者和运维人员追求的目标。Laravel 作为一款流行的 PHP 框架,因其优雅的语法和丰富的功能,受到了众多开发者的喜爱。而 Docker 作为容器化技术的佼佼者,可以帮助我们更轻松地将 Laravel 应用部署到各种环境中。本文将详细介绍如何使用 Docker 部署 Laravel 应用,并通过实战案例进行解析。
一、准备工作
在开始之前,请确保您的电脑上已安装以下软件:
二、Dockerfile 编写
Dockerfile 是用于构建 Docker 镜像的文本文件。以下是一个简单的 Laravel 应用 Dockerfile 示例:
# 使用官方 PHP 镜像作为基础镜像
FROM php:7.4-fpm
# 安装所需扩展
RUN docker-php-ext-install pdo pdo_mysql
# 复制源代码到容器中
COPY . /var/www/html
# 配置工作目录
WORKDIR /var/www/html
# 配置环境变量
ENV APP_ENV=production
ENV APP_KEY=base64:...
ENV DB_HOST=127.0.0.1
ENV DB_PORT=3306
ENV DB_DATABASE=laravel
ENV DB_USERNAME=root
ENV DB_PASSWORD=root
# 安装 Composer 和其他依赖
RUN composer install --no-dev
# 复制 .env.example 为 .env
COPY .env.example .env
# 配置数据库连接
RUN php artisan key:generate
RUN php artisan migrate
RUN php artisan config:cache
RUN php artisan route:cache
# 暴露端口
EXPOSE 80
# 运行容器
CMD ["php-fpm"]
三、Docker Compose 配置
Docker Compose 是用于定义和运行多容器 Docker 应用的工具。以下是一个简单的 Docker Compose 文件示例:
version: '3.8'
services:
web:
build: .
ports:
- "80:80"
volumes:
- .:/var/www/html
environment:
- APP_ENV=production
- APP_KEY=base64:...
- DB_HOST=127.0.0.1
- DB_PORT=3306
- DB_DATABASE=laravel
- DB_USERNAME=root
- DB_PASSWORD=root
db:
image: mysql:5.7
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=laravel
- MYSQL_USER=root
- MYSQL_PASSWORD=root
四、实战案例解析
假设我们已经完成了 Dockerfile 和 Docker Compose 文件的编写,接下来我们将通过以下步骤来部署 Laravel 应用:
- 将 Dockerfile 和 Docker Compose 文件放置在 Laravel 应用的根目录下。
- 在终端中运行以下命令,启动容器:
docker-compose up -d
- 等待容器启动完成,访问
http://localhost,即可看到 Laravel 应用的欢迎页面。
五、总结
通过本文的介绍,您应该已经掌握了如何使用 Docker 部署 Laravel 应用。使用 Docker 可以让您的应用更加便携、可移植和可扩展。希望本文对您有所帮助,祝您在 Docker 和 Laravel 的世界中探索愉快!
