feat/bug: Laravel 部署问题 – 服务处于停止状态,孤立容器,缺少数据库链接,Web 终端/CLI 和卷持久化
作者: farrasrayhand创建于 2026年7月29日更新于 2026年9月16日
问题描述
在Openship v0.4.8上部署标准的Laravel应用程序(cafe-payment)时,遇到了几个PaaS功能和UI错误,这些错误阻碍了正确的部署、管理和数据库配置。
访问部署的应用程序时,会抛出QueryException:
Illuminate\Database\QueryException
Database file at path [/var/www/html/database/database.sqlite] does not exist. Ensure this is an absolute path to the database.此外,尝试修复或管理服务状态会导致仪表板错误和孤立的容器。
关键问题和功能请求
1. 服务卡在Stopped状态中且不可编辑设置(错误)
当触发cafe-payment的Start或Redeploy时,UI会出现错误:
cafe-payment
Service has no image or build configured.- 不可编辑的UI:一旦处于此状态,设置(环境变量、构建命令、框架设置)就无法保存或修改。
- 孤立的容器:尽管UI显示
Stopped,Web应用程序仍可在其自定义域(cafe.minicenter.my.id)上访问。底层的Docker容器仍在运行,但Openship丢失了对其状态的跟踪。
2. 数据库提供与服务链接(功能请求/错误)
- 虽然可以在应用程序和服务下创建数据库服务(例如MySQL),但没有UI选项或自动机制来直接将数据库服务链接到应用程序容器。
- 连接应用程序完全依赖于手动环境变量注入,没有本机服务发现或链接。
3. 终端/Web CLI访问(功能请求)
- Openship UI中没有内置的Web终端或CLI控制台,用于在运行中的容器中执行命令。
- 这阻碍了常见的工作流程,例如:
php artisan migratephp artisan db:seed- 创建缺失的文件,如
database.sqlite
4. 持久卷挂载和存储(功能请求)
- 目前没有UI设置来定义或挂载持久的Docker卷到项目目录(例如
/var/www/html/storage或/var/www/html/database)。 - 没有明确的卷挂载,本地数据库(如SQLite)或上传的文件将在容器更新/重新部署时丢失。
可重现步骤(UI/容器错误)
- 在Openship v0.4.8上部署一个项目(
cafe-payment)。
…
内容来源: oblien/openship