Entorno de desarrollo para programación web con PHP en Docker.
-
Instalar Docker Desktop para Windows y macOS o Linux.
Para evitar errores de credenciales al descargar contenedores, hay que registrarse en Docker Hub e iniciar sesión con esa cuenta en Docker Desktop.
-
En Windows, instalar Scoop usando PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Y después instalar los comandos necesarios:
scoop install make
-
Añadir las entradas necesarias al fichero hosts del sistema:
En macOS y Linux:
sudo bash -c '{ echo "127.0.0.1 dockerbox.test" echo "127.0.0.1 phpmyadmin.dockerbox.test" echo "127.0.0.1 phpredisadmin.dockerbox.test" echo "127.0.0.1 mailpit.dockerbox.test" echo "127.0.0.1 vite.dockerbox.test" } >> /etc/hosts'
En Windows (desde un terminal con privilegios de administrador):
( echo 127.0.0.1 dockerbox.test echo 127.0.0.1 phpmyadmin.dockerbox.test echo 127.0.0.1 phpredisadmin.dockerbox.test echo 127.0.0.1 mailpit.dockerbox.test echo 127.0.0.1 vite.dockerbox.test ) >> %SystemRoot%\System32\drivers\etc\hosts
En macOS y Windows se puede modificar la resolución de DNS para que todos los dominios
.testse redirijan automáticamente alocalhosty no tener que editar a mano el fichero/etc/hosts. -
Clonar este repositorio:
git clone https://github.com/ijaureguialzo/dockerbox.git
Si el comando anterior no funciona, habrá que instalar Git en el sistema.
-
En un terminal, situarse en la carpeta
dockerbox(o si se ha renombrado, la que contenga este archivoREADME.md):cd dockerbox -
Copiar el fichero
env-examplea.env:En macOS y Linux:
cp env-example .env
En Windows:
copy env-example .env
⚠️ Es recomendable cambiar las contraseñas por defecto. -
Arrancar los servicios:
make start
⚠️ La primera vez tardará varios minutos en crear los contenedores y unos 30 segundos en generar los certificados digitales; la web dará error hasta que termine.
-
Acceso mediante shell al contenedor de php:
make workspace
-
Actualizar los contenedores:
make build
-
Crear una nueva carpeta
sites/nuevo_sitiocon el contenido del nuevo sitio web.El script de arranque busca carpetas dentro del directorio
sitesy las publica en el servidor web:- Si encuentra un subdirectorio
nuevo_sitio/publiconuevo_sitio/laravel/public, usará esa carpeta como raíz del sitio web. - Si no, publicará la carpeta
nuevo_sitiodirectamente.
Independientemente de si hay carpeta
publico no, el nuevo sitio siempre se llamaránuevo_sitio.dockerbox.test. - Si encuentra un subdirectorio
-
Editar como root el fichero
/etc/hosts(en macOS y Linux) o en Windows y añadir una nueva línea:127.0.0.1 nuevo_sitio.dockerbox.test -
Recargar los contenedores web:
make reload
-
Acceder al nuevo sitio.
- Instalar la extensión para el navegador y activar la depuración.
- Habilitar la escucha de conexiones de depuración en PhpStorm haciendo click en el
icono:

- Fijar un breakpoint y cargar la página en el navegador.
En vez de arrancar los contenedores con start usar start-expose-mariadb:
make start-expose-mariadb