Durant aquest pont em vaig decidir a configurar un ordinador Windows que tinc a casa per poder desenvolupar-hi en els meus temps lliures, per tenir un entorn separat de l'ordinador de treball. Feia mil anys i mig que no configurava un Windows per desenvolupar, i vaig decidir utilitzar la IA de GPT perquè em guies en el procés. Sent un usuari de Mac des de fa anys, i que la relació amb Windows s'havia reduït a una relació de multimèdia, he de dir que el procés ha resultat ser bastant fluid, van aparèixer un parell de problemes, que van tenir una solució senzilla, i en un parell d'hores l'equip estava llest per desenvolupar. Les diferències entre els dos sistemes operatius són mínimes avui dia, i m'ha sorprès molt gratament la integració de virtualització que porta Windows per defecte, una comanda i descarregues i instal·les un servidor Ubuntu,...
Configurar un entorn de desenvolupament pot ser un desafiament, especialment en canviar de sistema operatiu. En aquesta publicació, et guiaré a través del procés de configurar un entorn de desenvolupament Laravel amb Docker a Windows, ressaltant els problemes trobats i les seves solucions.
Comencem amb la instal·lació de Docker Desktop a Windows, una plataforma essencial per executar aplicacions en contenidors.
Ens vam trobar amb errors relacionats amb la configuració de WSL 2 (Windows Subsystem for Linux).
Activem la característica de Plataforma de Màquina Virtual de Windows i assegurem que la virtualització estigués habilitada a la BIOS.
Per crear un projecte Laravel, necessitem PHP i Composer, un gestor de dependències de PHP.
PHP va mostrar errors per la falta d'extensions com curl, mbstring i zip.
Revisem i editem l'arxiu php.ini per assegurar-nos que la extension_dir estigués correctament configurada i que les extensions necessàries estiguessin habilitades.
Amb PHP i Composer llestos, creem un nou projecte Laravel.
Al directori del projecte Laravel, creem un docker-compose.yml. Aquest arxiu defineix els serveis: PHP, Nginx i MySQL.
Aquest és un exemple de l'arxiu que em va proposar GPT4:
version: '3.8'
services:
app:
image: php:8.1-fpm
container_name: laravel_app
volumes:
- ./:/var/www
working_dir: /var/www
networks:
- laravel
webserver:
image: nginx:alpine
container_name: laravel_webserver
ports:
- "8080:80"
volumes:
- ./:/var/www
- ./docker/nginx:/etc/nginx/conf.d
depends_on:
- app
networks:
- laravel
db:
image: mysql:5.7
container_name: laravel_db
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- dbdata:/var/lib/mysql
networks:
- laravel
networks:
laravel:
driver: bridge
volumes:
dbdata:
driver: local
Establim Nginx com a servidor web i MySQL per a la base de dades.
Aquest és un exemple de com va quedar configurat:
server {
listen 80;
server_name linter-windows-test.test;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Inicialment, hi va haver problemes per connectar amb el servidor local a través del domini personalitzat http://linter-windows-test.test.
Actualitzem l'arxiu d'hosts de Windows (C:\Windows\System32\drivers\etc\hosts) afegint una entrada per redirigir linter-windows-test.test a 127.0.0.1. Això permet que el navegador trobi i carregui l'aplicació des de l'entorn Docker local.
Per a la gestió de bases de dades, recomanem eines com MySQL Workbench (descarrega aquí) i DBeaver (descarrega aquí), ambdues compatibles amb Windows i capaces de connectar-se a MySQL a Docker.
Al final, vam aconseguir configurar un entorn de desenvolupament Laravel funcional a Windows usant Docker, superant els desafiaments tècnics comuns pel camí. Aquest entorn ens permet desenvolupar aplicacions Laravel de manera eficient, aprofitant els avantatges de Docker.