apphp / laravel-docker
为本地Laravel开发设置自己的容器网络的Docker Compose工作流程
0.5.1
2022-08-30 20:20 UTC
Requires
- php: >=7.4 || ^8
README
一个相当简单的Docker Compose工作流程,用于设置本地Laravel开发的容器网络。
用法
要开始使用,请确保您的系统已安装Docker,然后克隆此仓库
要开始使用docker,请执行以下操作
-
打开终端并导航到您克隆此目录的位置,或者将
docker/
目录和docker-compose.yml
文件复制到您的当前项目,并导航到那里。 -
将文件中所有地方的
myapp
名称重命名为您喜欢的应用程序名称。 -
运行以下命令以启动Web服务器的容器
docker-compose up --build -d
在构建容器后,您可以使用以下命令启动它们
docker-compose up -d
或者使用以下命令停止
docker-compose down
成功构建网站后,您将通过以下方式访问它
https://:8081
架构
___________ ___________ ___________ ___________
| | | | | | | |
| NGINX | --→ | PHP-FPM | | PHP-CLI | | REDIS |
| | | | | | | |
----------- ----------- ----------- -----------
| | |
↓ ↓ ↓
____________ ______________________________ ______________
| Static | | | | |
| Content | | CODE |<--| Node & Npm |
| CSS,JS.. | | | | |
------------ ------------------------------ --------------
环境配置
请确保您在 .env
文件中创建了以下密钥
DB_DATABASE=your-db DB_USERNAME=your-db-username DB_PASSWORD=your-db-password
持久化MySQL存储
当您关闭Docker网络时,MySQL数据将在容器被销毁后删除。这是Docker容器的一个默认行为。如果您希望容器关闭和启动后保留持久数据,请执行以下操作
- 在Laravel项目根目录下创建一个
./storage/docker/mysql
文件夹。 - 在
docker-compose.yml
文件中的mysql服务下,添加以下行
volumes:
- ./storage/docker/mysql:/var/lib/mysql
使用PHP-CLI工作
迁移、种子和导入数据库
在成功构建和运行docker容器后,您可以使用以下命令运行迁移和种子。要执行这些操作,只需在终端中输入并执行以下命令
docker-compose run --rm php-cli php artisan migrate
docker-compose run --rm php-cli php artisan db:seed
使用Composer工作
要安装/移除新包,请运行以下命令
docker-compose run --rm php-cli composer require predis/predis
您要运行的其它命令
docker-compose run --rm php-cli composer --version
docker-compose run --rm php-cli composer dump-autoload
docker-compose run --rm php-cli composer test ExampleTest
使用PHP & Artisan工作
您要运行的命令示例
docker-compose run --rm php-cli php -v
docker-compose run --rm php-cli php artisan migrate
docker-compose run --rm php-cli php artisan db:seed
docker-compose run --rm php-cli php artisan optimize:clear
docker-compose run --rm php-cli php artisan schedule:run
使用Git工作
docker-compose run --rm php-cli git branch
docker-compose run --rm php-cli git pull
使用Redis工作
composer require predis/predis
docker exec -it redis bash
ping
redis-cli
keys *
set name John
get name
exit
使用Node & NPM工作
docker-compose run --rm node npm run dev
docker-compose run --rm node npm run watch
docker-compose run --rm node npm run hot