


Laravel multi-version docker development environment configuration plan under MacBook
First of all, I would like to thank the community. The author has learned a lot of technical nutrition from this community. Now I would like to share the author's PHP development environment configuration plan based on docker, hoping to provide some reference for ideas in building a PHP development environment.
Project background
Different laravel versions have different PHP version requirements.
If you encounter debugging multiple versions of projects at the same time, and use the docker environment for development. The specific scenario is as follows (example):
The authentication system is based on laravel6, and PHP runs version 7.2.
The application system is based on laravel9 and PHP runs version 8.1.
The application needs to jump to the authentication system for unified login. After the authentication is passed, the temporary ticket parameter code is carried to jump back to the application. After the application obtains the code parameter, it requests the authentication system RPC service to obtain user details.
Directory structure reference:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
docker-compose.json Content reference:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|
nginx virtual machine configuration reference:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
Host hosts configuration reference:
1 2 |
|
php-fpm’s docker image Get reference:
The author has added some extensions necessary for development based on the official image, and then the built image
contains PHP7.4, PHP8.0, PHP8.1, PHP8.2
MacBook Intel chip docker PHP images :
hub.docker.com/r/bai615/amd64-php/...
MacBook M1 chip docker PHP images :
hub.docker.com/r/bai615/arm64-php/...
Easy to use third-party old version of PHP
Includes PHP5.3, PHP5 .4, PHP5.5, PHP5.6, PHP7.0, PHP7.1, PHP7.2, PHP7.3
hub.docker.com/r/leleos/php-fpm/ta...
The author’s development experience:
docker development environment:
You can switch the software version at will (PHP, MySQL, Nginx, etc.), consistent with the test environment or production environment.
homestead development environment:
Needs to be based on vgrant and relies on vbox or wmware. Currently, it is not friendly enough for M1 support.
Development environment based on brew software management:
brew method to install and manage software (PHP, MySQL, Nginx, etc.). When the brew version is upgraded, unpredictable problems may occur that may affect installed software. As follows:
1. Synchronous upgrade with underlying dependencies, and no longer supports running of lower versions of PHP (for example, PHP5.6 and below cannot run).
2. The default installation path of the software has been changed, and software that relies on the original path cannot run.
brew 3.x software default installation path/opt/homebrew/bin/
brew 4.x software default installation path/usr/local/bin/
3. PHP, MySQL, Nginx and other versions are not switched enough flexible.
The above is the detailed content of Laravel multi-version docker development environment configuration plan under MacBook. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Method for obtaining the return code when Laravel email sending fails. When using Laravel to develop applications, you often encounter situations where you need to send verification codes. And in reality...

Laravel schedule task run unresponsive troubleshooting When using Laravel's schedule task scheduling, many developers will encounter this problem: schedule:run...

The method of handling Laravel's email failure to send verification code is to use Laravel...

How to implement the table function of custom click to add data in dcatadmin (laravel-admin) When using dcat...

Laravel - Dump Server - Laravel dump server comes with the version of Laravel 5.7. The previous versions do not include any dump server. Dump server will be a development dependency in laravel/laravel composer file.

The impact of sharing of Redis connections in Laravel framework and select methods When using Laravel framework and Redis, developers may encounter a problem: through configuration...

Custom tenant database connection in Laravel multi-tenant extension package stancl/tenancy When building multi-tenant applications using Laravel multi-tenant extension package stancl/tenancy,...

Laravel - Action URL - Laravel 5.7 introduces a new feature called “callable action URL”. This feature is similar to the one in Laravel 5.6 which accepts string in action method. The main purpose of the new syntax introduced Laravel 5.7 is to directl
