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 mutagen
En macOS hay que instalar mutagen mediante Homebrew y en Linux usando el gestor de paquetes del sistema.
-
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
.test
se redirijan automáticamente alocalhost
y 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-example
a.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_sitio
con el contenido del nuevo sitio web.El script de arranque busca carpetas dentro del directorio
sites
y las publica en el servidor web:- Si encuentra un subdirectorio
nuevo_sitio/public
onuevo_sitio/laravel/public
, usará esa carpeta como raíz del sitio web. - Si no, publicará la carpeta
nuevo_sitio
directamente.
Independientemente de si hay carpeta
public
o 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