我已经走了很长的路来弄清楚如何在我的 Synology 上的 docker 容器中运行 Laravel 应用程序。最后,它并没有那么困难,并且在没有 SSH 的情况下也能正常工作。

先决条件

应在 Synology 上安装并运行以下软件包:

  • 码头工人

  • MariaDB

  • phpMyAdmin

第一步是在 Synology File Station 上创建一个文件夹,以将 Laravel 应用程序映射到,例如文件夹 <Docker> 和子文件夹 <api>。这样您就可以轻松地将项目挂载到您的计算机上。

登录到 phpMyAdmin,使用自定义用户创建一个新数据库并授予必要的权限。无论如何,以这种方式写下凭证:

  • DB_HOST:<你的国学ip>

  • DB_DATABASE: <你的数据库>

  • DB_USERNAME: <你的用户>

  • DB_PASSWORD: <你的密码>

  • DB_PORT: <你的端口——默认是 3306>

在 Synology 上打开 Docker,前往 Registration 找到 bitnami/laravel 镜像并点击 Download:

Docker on Synology:选择注册

Docker部分注册

下载图像后,转到 Image 部分,选择 bitnami/laravel 并点击 Start:

Synology 上的 Docker:选择镜像

Docker 部分图像

在打开的窗口中,选择您的网络并单击下一步:

Docker on Synology:选择网络

Docker 网络设置

调整容器名称并启用自动重启:

Docker on Synology:调整数据

Docker 容器设置

单击 Advanced Settings 以将数据库凭据添加到环境变量。在 Add 上点击 5 次以获得我们 5 个数据库值的占位符:

Docker on Synology:环境变量

Docker 环境变量

保存后,您可以自定义网络端口,例如如下,然后点击下一步:

Docker 端口设置

在此屏幕中,单击 Add folder 并将其安装到您的 docker 文件夹中。在 File Station 上选择您在第一步中配置的文件夹,单击 Select 并将其挂载到路径 /app。

Docker on Synology:挂载卷

Docker 应用程序设置

现在:启动你的容器。这需要几分钟,并且应该发生以下事情:

  • 在 File Station 上的文件夹中现在应该可以看到默认的 Laravel 文件夹结构

  • 在 webbrowser ip:port 上现在应该显示默认的 Laravel 起始页

Laravel 的文件夹结构

File Station 文件夹结构 (Laravel)

Laravel 默认起始页

Webbrowser Laravel 的默认起始页

现在转到 Docker on Synology,部分 Container 并选择您的 Laravel 容器。点击详情。在 Protocol 部分,您可以检查您的服务器是否已启动并正在运行。接下来点击 Terminal 并点击 Create

码头工人终端

现在我们使用控制台来设置我们的应用程序。运行以下命令

  • 作曲家安装

  • npm 安装

  • npm 运行构建

我喜欢使用 Jetstream 和 Livewire,所以让我们将它与其他一些软件包一起安装:

  • 作曲家需要 laravel/jetstream

  • php artisan jetstream:安装 livewire

  • php artisan vendor:publish — tagu003djetstream-views

  • php 工匠迁移

  • php artisan storage:link

  • 作曲家需要 barryvdh/laravel-debugbar — dev

  • 作曲家需要 tabuna/面包屑

如果您现在转到 ip:port 上的页面并单击 Login,则模板有点损坏 😊。转到您的 File Station,打开 .env 文件并将 APP_URL 调整为 http://<your ip>:<your port>。

在您的控制台上再次运行 npm run build 并使用 _php artisan cache:clear 清除缓存。并非一切都应该没问题:

漂亮的注册面板

如果您想使用 Jetstream 的 API 和 Profile Photo 功能,请不要忘记在 config/jetstream.php 中启用它们(取消注释 2. 和 3. 条目)

在我接下来的一个教程中,我将向您展示如何通过按下按钮从 Synology 上的 Git 或 Docker Git 容器获取当前状态。

快乐编码!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐