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.