mathieutu / php-project-launcher
一个带有Docker的PHP项目启动器。
README
在秒内设置灵活的Docker开发环境。此包假定您已安装docker,并且有兼容bash的操作系统(实际上未在Windows上测试)。
设置您的项目服务
每个项目只在根源文件夹中设置一次。
如果服务已为您的项目设置好,您可以直接跳转到“启动服务”章节。
📦 需要的包
$ composer require mathieutu/php-project-launcher
如果您电脑上没有php和composer,您可以直接使用composer docker容器。
$ docker run --rm -ti -v $PWD:/app composer require mathieutu/php-project-launcher
提示:您应该在这里提交!😇
🐳 初始化Docker文件
$ ./vendor/bin/ppl init {project-name?}
提示:您可以个性化项目名称,或者留空以使用目录名称。默认情况下,它将用于自动设置域名:project-name.test
和project-name.localhost
。要使用*.test
,开发者需要编辑其hosts
或添加dns服务器,但*.localhost
应在Unix操作系统上开箱即用。
📝 选择您的口味
编辑docker-compose.yml
、docker/*
和.env
文件以适应您的需求。
一个标准的Laravel 5 / Symfony 4应用程序,带有PostgreSQL数据库,在更新您的.env
文件后应该可以直接使用。
请参阅配置章节以获取所有详细信息。
提示:您也应该在这里提交 😇!
启动服务
对于每个电脑上的开发者,每次他们需要启动项目时。
🚀 启动您的项目
$ ./vendor/bin/ppl up
提示:如果找不到,将启动一个作为nginx-proxy
运行的jwilder/nginx-proxy容器,如果存在标准'web'容器。它将允许您为项目使用多个域名。
🎉 创造伟大的事物
更新您的.env
文件
使用ppl db
命令,您将看到您的.env
文件所需的所有值。
$ ./vendor/bin/ppl db From the container: DB_CONNECTION=pgsql DB_HOST=db DB_PORT=5432 DB_USERNAME=root DB_PASSWORD= DB_DATABASE=local DATABASE_URL=postgresql://root:@db:5432/local ...
在浏览器中查看您的项目
$ ./vendor/bin/ppl open {path?}
提示:如果您在up
命令后立即这样做,您可能会看到502页面。稍等片刻,几秒钟后刷新,这只是服务器启动所需的时间!
提示²:您可以使用web服务中的$PPL_OPEN
环境变量自定义要打开的域名。
在专用软件中查看您的数据库内容
您可以使用以下方法查看您数据库的公共端口:
$ ./vendor/bin/ppl db
...
From outside:
Type: PostgresSQL
Host: 127.0.0.1
Port: 32813
Username: root
Password:
Database: local
Url: postgresql://root:@127.0.0.1:32813/local
使用您喜欢的框架CLI工具
您可以直接访问CLI工具:
$ ./vendor/bin/ppl artisan
$ ./vendor/bin/ppl console
提示:因为我们从未节省太多时间,您可以直接使用ppla
和pplsf
别名。
示例
ppla migrate
pplsh doctrine:migrations:migrate
等等...
您可以使用以下方法查看您能做的一切:
$ ppl --help
PHP Project Launcher.
Usage:
./vendor/bin/ppl [COMMAND] [ARGS...]
./vendor/bin/ppl -h | --help
Commands:
init Install the docker files to set the services. Can be used with project name in parameter.
up | u Run the project services (run the proxy if not already launched).
down | d Stop and remove the project services.
reload | rl Down and up the project services (with image rebuild).
open | o Open project in web browser.
database | db Show the env variables and the database connection information.
artisan | a Execute Laravel Artisan in the web service (with access to DB).
console | sf Execute Symfony Console in the web service (with access to DB).
composer | c Execute Composer in the web service (with proper version of php).
yarn | y Execute Yarn in the web service.
bash | sh Open a bash console in the web service.
exec | e Execute a command in the web service.
inspect | i Show the docker configuration for a service.
logs View output from services.
ps List services.
* Fallback on docker-compose binary.
提示:通过将./vendor/bin/
添加到您的路径,您将能够直接输入ppl
而不是./vendor/bin/ppl
。这将对所有composer二进制文件很有用,例如phpunit
!为此,您只需将export PATH=./vendor/bin:$PATH
添加到您的.bashrc或.zshrc文件中。
使配置完全属于您
一个带有PostgreSQL数据库的标准Laravel/Symfony应用程序应在配置了您的.env
文件后开箱即用。
如果您希望使用它,请取消注释 docker-compose.yml
中的 mysql 示例。
目前,在原始版本中,您可以看到以下文档页面:
- jwilder/nginx-proxy:允许您在项目中使用域名进行反向代理。
- richarvey/nginx-php-fpm:用于提供 Web 服务的镜像。直接包含 git、nginx、php、composer、xdebug 等。
- postgres 和 mysql 数据库容器。
- docker 和 docker-compose 工具。
自定义您的 URL
在 docker-compose.yml
文件中,您将能够自定义 Web 服务中的几个环境变量
$VIRTUAL_HOST
,这是代理将重定向到该容器的所有域名列表。$PPL_OPEN
,这是命令ppl open
将使用的根 URL。
待续...
为此项目做出贡献
请积极提出 Issue 和 Pull Requests,包括新功能和错误修复以及文档。