Det händer mycket med Laravel, som de flesta ramverk. Att manuellt sätta upp docker och konfigurera det behövs egentligen inte. Funktionaliteten med att köra Laravel och den mjukvara som krävs för det finns nu paketerat i något som kallas för Breeze, det gör att den följande guiden inte behövs.
Viktigt med secure-file-priv = "" annars fungerar det inte.
Konfigurationsfiler för denna Docker image.
Laravel
Laravel kräver en .env fil för att kunna köras.
Redigera databasinformationen.
Kör
Du bör nu vara redo att bygga och starta denna image, det kan ta en stund.
För att se alla containers som körs. Prova sedan att öppna den i webbläsaren, localhost.
Du behöver nu skapa en app:key, du kan eventuellt göra det direkt i webbläsare, annars kör du följande kommando för exekvera php artisan för att skapa en key.
Den grundläggande konfigurationen är nu skapad.
MySQL
För att slutföra konfigurationen av MySQL och skapa en användare så kopplar vi upp oss mot Docker imagen. Det ger dig ett bash shell direkt på imagen.
Starta sedan mysql och skapa en user.
Avsluta sedan MySQL och Bash instansen på docker imagen med exit.
Laravel migrate
Nu bör du kunna migrera Laravels databas-tabeller.
Om du får fel, prova att rensa artisan config.
Testa att det fungerar på imagen med tinker.
Cache
Att cacha en applikation låser konfigurationen. Om du får fel så kan du behöva uppdatera den.
Du kan köra följande kommando för att skapa en cache för den, vilket snabbar upp din applikation.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57368c541885 nginx:alpine "/docker-entrypoint.…" 10 seconds ago Up 8 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp webserver
f09495147f49 mysql:8.0.22 "docker-entrypoint.s…" 10 seconds ago Up 8 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp db
3a0b42d5fb77 digitalocean.com/php "docker-php-entrypoi…" 10 seconds ago Up 8 seconds 9000/tcp app
docker-compose exec app php artisan key:generate
docker-compose exec db bash
mysql -u root -p
CREATE USER 'laraveluser'@'%' IDENTIFIED BY 'Secret123';
GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'%';
FLUSH PRIVILEGES;