php - 使用 Docker 容器部署 Laravel

标签 php mysql laravel docker nginx

我计划使用 docker 容器部署我的 Laravel 应用程序。 我的应用程序需要以下组件:

  • MySQl 服务器
  • nginx 服务器
  • cerbot 用于激活 ssl
  • Laravel 的队列 worker

由于该应用程序仍处于开发阶段(并且可能永远如此),因此它应该非常容易更新(我将使用 GitLab CI/CD 自动执行此操作),并且在更新期间应该尽可能减少停机时间。 另外,我希望能够托管应用程序的多个实例,其中只有 Laravel 的 .env 文件是不同的。除了实时应用程序之外,我还想托管一个临时应用程序。

我当前的方法是为 MySQL 服务器创建一个容器,一个用于 nginx 服务器,一个用于队列工作器。应用程序代码将是 nginx 服务器容器和队列工作容器中的一层。更新应用程序时,我会重建 nginx 容器和队列工作容器。
这是一个好方法吗?或者有更好的方法来实现这一目标吗?对于我的 mysql 服务器、nginx 服务器、php 版本...来说,什么是一个好方法来保持最新状态而不导致应用程序停机?

最佳答案

docker 的主要思想是通过容器来划分你的应用程序。所以,是的,一项服务使用一个容器是件好事。在您的示例中,我建议将 MySQL 保留在一个容器中,将队列工作程序保留在另一个容器中,依此类推。因此,您将为每项服务提供容器。然后建议创建内部文档网络并将容器连接到它们。另外,我建议使用 docker 卷来存储所有应用程序数据。为了使它更容易,我建议配置使用 docker compose。

关于php - 使用 Docker 容器部署 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58589352/

相关文章:

php - laravel carbon 从集合的日期列中获取日期名称

php - Laravel 电子邮件验证 - 强制登录

PHP 不区分大小写的 explode()

C# MySQL 查询错误处理程序

mysql - 预订系统

php - 如何使用命令行手动运行 laravel/lumen 作业

php - mysql如何正确查询这个

php - 如何通过php跳过段落中的某些单词

php - 在php中将单个数组转换为多维数组

php - 如何创建PHP Mysql日报而不重复代理名称?