简介
Docker 是一种虚拟化技术,可以轻松构建、打包、分享应用程序和服务。本文将介绍如何使用 Docker 部署 Laravel 项目,使你的应用程序更加便携、更容易维护。
所需工具
在开始之前,需要准备以下工具:
- Docker
- Docker Compose
- Laravel 项目代码
Docker 镜像
Docker 镜像是一种轻量级、独立、可执行的软件包,其中包含运行容器所需的全部内容,包括代码、库、环境变量和配置文件。你可以将 Docker 镜像视为一种软件模板,而容器则是运行该模板的实例。
我们将使用官方提供的 PHP 镜像,它已经包含了 Apache 和 PHP。我们需要扩展这个镜像来支持 Laravel 应用程序的运行。
首先,创建一个名为 Dockerfile
的文件,并添加以下内容:
---- -------------- --- ------- ------ -- ------- ------- -- - ------------- - --------- - ---------- - --- - ----- - -- ---------------------- --------- --------- --- - -- ------- ------- ---- - --------------
这个 Dockerfile 首先使用 FROM php:7.4-apache
命令来基于 PHP 7.4 和 Apache 镜像构建自定义镜像。
然后,我们使用 RUN
命令来安装需要的扩展库和软件包,下载并安装了 libmcrypt-dev
、libpq-dev
、libzip-dev
、zip
和 unzip
等库。然后运行 docker-php-ext-install
命令来安装 PHP 的扩展包,包括 pdo_pgsql
、pdo_mysql
和 zip
。最后,我们启用了 rewrite
模块。
最后,将 Laravel 项目代码复制到容器的 /var/www/html/
目录中。
Docker Compose
Docker Compose 是 Docker 官方推出的工具,它使用 YAML 文件来定义和配置多个容器的运行环境。可以轻松地在不同的服务器或本地主机之间部署应用程序和服务。
我们将使用 Docker Compose 来定义和运行两个容器,一个是我们刚刚创建的 Laravel 应用程序容器,另一个则是 PostgreSQL 数据库容器。
首先,创建名为 docker-compose.yml
的文件,并添加以下内容:
-------- --- --------- ---- ------ - ------ - --------- -------- - --------------- ----------- - -- --- ------ ----------- ------------ -------------- ------ ------------------ ------ ------------ ------
这个 YAML 文件包含了两个服务:
web
:这是我们刚刚创建的 Laravel 应用程序容器。定义了上面创建的 Dockerfile,并暴露了端口8080
。db
:这是我们将要使用的 PostgreSQL 数据库容器。使用官方postgres:12
镜像,并设置了一些环境变量。
我们在 web
服务中使用了 build
命令,这将会基于当前目录中的 Dockerfile
构建镜像。web
服务还挂载了本地目录中的代码到容器的 /var/www/html
目录中。
最后,使用 depends_on
命令来指定 web
服务依赖于 db
服务,以确保使用时数据库容器已经启动。
项目配置
在 Laravel 项目中,需要更新一些配置文件以适应 Docker 环境。
首先,在 .env
文件中更新数据库连接配置:
------------------- ---------- ------------ ------------------ ------------------ ------------------
这里将 DB_HOST
设置成了 db
,这对应了我们在 docker-compose.yml
中定义的 PostgreSQL 数据库服务。
接下来,在 config/cache.php
文件中更新 Redis 的连接:
------- -- - -------- -- ------------------- ------------ --------- -- -------------------- ------- --------- -- - --------- -- -------------------- --------- -------- -- ------------------- ------------------------- ----------- ------------------- -- --------- -- - ----- -- ----------------- ------ -- -------- ---------- -- --------------------- ------ ------ -- ----------------- ------ ---------- -- --------------- --- -- --
这里将 host
设置成了 redis
,这对应了我们将要在 Docker Compose 中定义的 Redis 服务。
最后,在 config/session.php
文件中更新 Redis 的连接:
-------- -- --------------------- -------- ------------ -- ------------------------- ---------
这里将 connection
设置成了 redis
。
运行 Docker Compose
现在,我们已经完成了各项配置,可以运行 Docker Compose 了。
首先,使用 docker-compose build
命令来构建镜像:
-------------- -----
接着,使用 docker-compose up
命令来启动容器:
-------------- --
现在,你可以在浏览器中访问 http://localhost:8080
来访问你的 Laravel 应用程序。
总结
本文介绍了如何使用 Docker 部署 Laravel 项目,通过 Docker 和 Docker Compose 可以轻松实现多容器应用程序的运行和部署。这样可以大大降低开发者的部署难度,使得应用程序更加稳定、便携和易于维护。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65aa61f0add4f0e0ff3fdd2c