在小型 Docker 开发环境中启动并运行。
完整文档可在 https://vessel.shippingdocker.com 找到。
Vessel 只是一小部分文件,用于为每个项目设置一个基于 Docker 的本地开发环境。除了 Docker 本身之外,不需要全局安装任何东西!
这就是使用它的全部内容:
作曲家需要运输码头/船只 php artisanvendor:publish --provider="VesselVesselServiceProvider"# 运行一次以初始化项目# 必须使用“bash”运行,直到初始化 bash 容器 init ./船舶启动
在浏览器中访问http://localhost
并查看您的 Laravel 站点!
如果您使用 Lumen,则需要手动复制 Vessel 文件,而不是使用php artisan vendor:publish
。您可以使用以下命令执行此操作:
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
然后您就可以正常安装并继续。
Vessel 尝试绑定到您计算机上的端口 80 和 3306,因此您只需在浏览器中访问http://localhost
即可。
但是,如果您运行多个 Vessel 实例,则启动时会出现错误;每个端口只能使用一次。要解决此问题,请通过以下两种方式之一设置APP_PORT
和MYSQL_PORT
环境变量,为每个项目使用不同的端口:
在.env
文件中:
APP_PORT=8080 MYSQL_PORT=33060
或者启动 Vessel 时:
APP_PORT=8080 MYSQL_PORT=33060 ./容器启动
然后您可以在http://localhost:8080
查看您的项目并从端口33060
本地访问您的数据库;
由于我们将MySQL绑定到了3306
端口,SequelPro可以直接访问数据库。
用户root
的密码由.env
文件中的环境变量DB_PASSWORD
设置。
端口设置必须与
MYSQL_PORT
环境变量匹配,默认为3306
。
以下是您可以使用的内置帮助程序的列表。 vessel
脚本中未定义的任何命令将默认传递给docker-compose
命令。如果不使用命令,它将运行docker-compose ps
来列出该环境中正在运行的容器。
# 显示容器当前版本$ Vessel --version # 或 [ -v |版本 ]# 显示容器帮助$容器 --help # 或 [ -H |帮助 ]
# 启动环境./vessel start## 这相当于./vessel up -d# 停止环境./vessel stop## 这相当于./vessel down
# 使用composer./vesselcomposer<cmd>./vesselcomp<cmd>#“comp”是“composer”的快捷方式#使用artisan./vesselartisan<cmd>./vesselart<cmd>#“art”是“artisan”的快捷方式#运行tinker REPL./vesseltinker#“tinker”是“artisantinker”的快捷方式#运行phpunit测试./vesseltest##示例:你可以传递任何你想要的东西phpunit 也是如此。/vessel test --filter=some.phpunit.filter ./vessel test测试/Unit/SpecificTest.php#运行npm./vessel npm <cmd>##示例:安装deps./vessel npm install#运行yarn./vessel yarn <cmd>##示例:安装deps./容器纱线安装#运行gulp./vessel gulp <cmd>
如前所述,任何未识别为内置命令的内容都将用作docker-compose
命令的参数。这里有一些方便的技巧:
# 两者都会列出当前正在运行的容器及其状态。/vessel ./vessel ps# 查看容器服务的日志输出。/vessel logs # 所有容器日志。/vessel log app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis messages## 拖尾日志以查看生成的输出。/vessel logs -f # 所有日志。/vessel logs -f app # nginx | php log## Tail Laravel Logs./vessel exec app tail -f /var/www/html/storage/logs/laravel.log# 在容器内启动 bash shell# 这就像通过 SSH 连接到服务器#请注意,以这种方式对容器所做的更改**不会**#通过停止和启动容器环境而保留#要安装软件或更改服务器配置,您需要#编辑Dockerfile并运行:./vessel build。 /血管exec app bash# 示例:mysqldump 数据库“homestead”到本地文件系统# 我们必须以这种方式在命令行中添加密码# 这会在本地文件系统上创建文件“homestead.sql”,而不是# 在容器内部# @链接 https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
该项目的目标是简单。它包括:
PHP 7.4
MySQL 5.7
Redis(最新)
NodeJS(最新),带有 Yarn 和 Gulp
如果您不熟悉 Docker,请尝试这个 Docker 开发课程,其中解释了如何将其组合在一起的重要主题。
如果您想了解此工作流程是如何开发的,请查看 Shipping Docker 并注册免费课程模块,该模块解释了如何构建此 Docker 工作流程。
Vessel 需要 Docker,目前仅适用于 Windows、Mac 和 Linux。
Windows 需要运行 Hyper-V。 支持使用 Git Bash (MINGW64) 和 WSL。 本机 Windows 仍在开发中。
苹果 | Linux | 视窗 |
---|---|---|
在 Mac 上安装 Docker | 在 Debian 上安装 Docker | 在 Windows 上安装 Docker |
在 Ubuntu 上安装 Docker | ||
在 CentOS 上安装 Docker |