在小型 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測試./vessel測試##範例:您也可以將任何想要傳遞給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 ps# 查看容器服務的日誌輸出。 php logs./vessel logs mysql # mysql logs./vessel logs redis # redis messages## 拖尾日誌以查看產生的輸出。 php log## Tail Laravel Logs./vessel exec app tail -f /var/www/html/storage/logs/laravel.log# 在容器內啟動 bash shell# 這就像透過 SSH 連接到伺服器#請注意,以這種方式對容器所做的更改**不會**#通過停止和啟動容器環境而保留#要安裝軟體或更改伺服器配置,您需要#編輯Dockerfile並運行:./vessel build。 bash# 範例:mysqldump 資料庫“homestead”到本機檔案系統# 我們必須以這種方式在命令列中新增密碼# 這會在本機檔案系統上建立檔案“homestead.sql”,而不是# 在容器內部# @ link 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 |