webman與docker開(kāi)發(fā)環(huán)境交互

簡(jiǎn)介
Webman Sail 是一個(gè)輕量級(jí)的命令行界面,用于 webman 與 Docker 開(kāi)發(fā)環(huán)境進(jìn)行交互。Sail 為使用 PHP,MySQL 和 Redis 構(gòu)建 Webman 應(yīng)用程序提供了一個(gè)很好的起點(diǎn),而無(wú)需事先具有 Docker 經(jīng)驗(yàn)。
Sail 的核心是 docker-compose.yml 文件和存儲(chǔ)在項(xiàng)目根目錄的 sail 腳本。sail 腳本為 CLI 提供了便捷的方法,可用于與 docker-compose.yml 文件定義的 Docker 容器進(jìn)行交互。
Webman Sail 支持 macOS、Linux 和 Windows (通過(guò) WSL2)。
置頂
- 解決"先有雞,還是先有蛋"問(wèn)題. 無(wú)需系統(tǒng)有php環(huán)境,直接建立webman項(xiàng)目(通過(guò)docker):
curl -s "https://www.roiwk.cn/build-webman-app" | bash
這將在當(dāng)前目錄下建立一個(gè)'example-app'的文件夾, 默認(rèn)環(huán)境為php8.1, mysql,reids的webman項(xiàng)目
安裝 & 啟動(dòng)
- 安裝依賴
composer require roiwk/webman-sail --dev
- webman命令執(zhí)行
sail:install
。這個(gè)命令用于發(fā)布docker-compose.yml
文件到你應(yīng)用程序的根目錄:
php webman sail:install
- 啟動(dòng)服務(wù)。
./vendor/bin/sail up
至此,基本的環(huán)境安裝已經(jīng)就緒,下來(lái)是配置和使用相關(guān)的文檔:
環(huán)境變量
-
php版本默認(rèn)使用8.1版本。 默認(rèn)版本支持 7.4-8.2,更多可查看定制容器; 具體版本按需設(shè)置
.env
文件中的配置即可。PHP_CLI_VERSION=8.1
-
數(shù)據(jù)庫(kù)配置
DB_PORT=3306 DB_DATABASE=test DB_USERNAME=dev DB_PASSWORD=123456 DB_ROOT_PASSWORD=password
執(zhí)行命令
-
help,查看支持的指令幫助。
./vendor/bin/sail --help
-
sail === docker-compose 相當(dāng)于docker-compose指令。
./vendor/bin/sail up -d ./vendor/bin/sail down ./vendor/bin/sail ps
-
sail === php-cli(container) 鏈接有容器內(nèi)部php指令。
./vendor/bin/sail php test.php
-
sail === composer(container) 鏈接容器內(nèi)部composer指令。
./vendor/bin/sail composer update ./vendor/bin/sail composer require foo/bar ./vendor/bin/sail composer remove foo/bar
-
sail === mysql-cli 鏈接容器內(nèi)部mysql/mariadb/psql指令。
./vendor/bin/sail mysql
-
sail === redis-cli 鏈接容器內(nèi)部redis指令。
./vendor/bin/sail redis
-
sail === shell(container) 鏈接應(yīng)用容器內(nèi)部shell指令。
./vendor/bin/sail shell ./vendor/bin/sail root-shell #root用戶
-
sail === phpunit(container) 執(zhí)行應(yīng)用容器內(nèi)部phpunit指令。
./vendor/bin/sail phpunit --bootstrap support/bootstrap.php
...等等功能,
--help
期待你的發(fā)現(xiàn)與探索。
定制容器
因?yàn)?Sail 就是 Docker,所以你可以自由的定制任何內(nèi)容,使用 sail:publish
命令可以將 Sail 預(yù)設(shè)的 Dockerfile 發(fā)布到你的應(yīng)用程序中,以便于進(jìn)行定制:
./vendor/bin/sail webman sail:publish
運(yùn)行這個(gè)命令后,Sail 預(yù)設(shè)好的 Dockerfile 和其他配置文件將被生成發(fā)布到項(xiàng)目根目錄的 docker 目錄中。
完成上述操作后,可以按需修改Dockerfile中的php擴(kuò)展等。修改完成后,執(zhí)行以下命令重新構(gòu)建容器即可:
./vendor/bin/sail build --no-cache
貢獻(xiàn)
歡迎提交PR
開(kāi)源許可協(xié)議
MIT