webman与docker开发环境交互
简介
Webman Sail 是一个轻量级的命令行界面,用于 webman 与 Docker 开发环境进行交互。Sail 为使用 PHP,MySQL 和 Redis 构建 Webman 应用程序提供了一个很好的起点,而无需事先具有 Docker 经验。
Sail 的核心是 docker-compose.yml 文件和存储在项目根目录的 sail 脚本。sail 脚本为 CLI 提供了便捷的方法,可用于与 docker-compose.yml 文件定义的 Docker 容器进行交互。
Webman Sail 支持 macOS、Linux 和 Windows (通过 WSL2)。
置顶
- 解决"先有鸡,还是先有蛋"问题. 无需系统有php环境,直接建立webman项目(通过docker):
curl -s "https://www.roiwk.cn/build-webman-app" | bash
这将在当前目录下建立一个'example-app'的文件夹, 默认环境为php8.1, mysql,reids的webman项目
安装 & 启动
- 安装依赖
composer require roiwk/webman-sail --dev
- webman命令执行
sail:install
。这个命令用于发布docker-compose.yml
文件到你应用程序的根目录:
php webman sail:install
- 启动服务。
./vendor/bin/sail up
至此,基本的环境安装已经就绪,下来是配置和使用相关的文档:
环境变量
-
php版本默认使用8.1版本。 默认版本支持 7.4-8.2,更多可查看定制容器; 具体版本按需设置
.env
文件中的配置即可。PHP_CLI_VERSION=8.1
-
数据库配置
DB_PORT=3306 DB_DATABASE=test DB_USERNAME=dev DB_PASSWORD=123456 DB_ROOT_PASSWORD=password
执行命令
-
help,查看支持的指令帮助。
./vendor/bin/sail --help
-
sail === docker-compose 相当于docker-compose指令。
./vendor/bin/sail up -d ./vendor/bin/sail down ./vendor/bin/sail ps
-
sail === php-cli(container) 链接有容器内部php指令。
./vendor/bin/sail php test.php
-
sail === composer(container) 链接容器内部composer指令。
./vendor/bin/sail composer update ./vendor/bin/sail composer require foo/bar ./vendor/bin/sail composer remove foo/bar
-
sail === mysql-cli 链接容器内部mysql/mariadb/psql指令。
./vendor/bin/sail mysql
-
sail === redis-cli 链接容器内部redis指令。
./vendor/bin/sail redis
-
sail === shell(container) 链接应用容器内部shell指令。
./vendor/bin/sail shell ./vendor/bin/sail root-shell #root用户
-
sail === phpunit(container) 执行应用容器内部phpunit指令。
./vendor/bin/sail phpunit --bootstrap support/bootstrap.php
...等等功能,
--help
期待你的发现与探索。
定制容器
因为 Sail 就是 Docker,所以你可以自由的定制任何内容,使用 sail:publish
命令可以将 Sail 预设的 Dockerfile 发布到你的应用程序中,以便于进行定制:
./vendor/bin/sail webman sail:publish
运行这个命令后,Sail 预设好的 Dockerfile 和其他配置文件将被生成发布到项目根目录的 docker 目录中。
完成上述操作后,可以按需修改Dockerfile中的php扩展等。修改完成后,执行以下命令重新构建容器即可:
./vendor/bin/sail build --no-cache
贡献
欢迎提交PR
开源许可协议
MIT