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.
Usamos cookies de terceros con fines analíticos, en resumen solo usamos las cookies de Google Analytics para poder analizar nuetro tráfico.