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
或者直接指定需要安装的服务:
php webman sail:install --with=mysql,redis
- 启动服务。
./vendor/bin/sail up
访问: http://localhost
即可。
至此,基本的环境安装已经就绪,下来是配置和使用相关的文档:
- 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
./vendor/bin/sail php -v
- 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
- 使用开发容器 DevContainer
./vendor/bin/sail install --devcontainer
- 配置别名 默认情况下,Sail 命令使用 vendor/bin/sail 脚本调用,但与其重复的输入 vendor/bin/sail 来执行 Sail 命令,你可能会希望配置一个 Bash 别名方便你更容易的执行 Sail 命令
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
补充:通过 vim ~/.bashrc 或 vim ~/.zshrc 加入别名,可以让别名常驻。
欢迎提交PR
灵感与借鉴:laravel/sail