Copie apenas o dockerfile e docker-compose.yml deste repositorio
rode no terminal o comando docker-compose build
em seguida docker-compose up
verifique se no seu docker o container foi criado e está rodando com os 2 serviços.
agora entre no terminal de comandos da maquina virtual com o comando
docker exec -it laravel-docker-postgresql o nome após o -it é o container_name do arquivo yml
crie um projeto laravel novo composer create laravel/laravel nomedoprojeto
com seu projeto criado digite o comando lsstrong> e valide se foi criado a pasta com o nome do seu projeto.
entre nesta pasta cd nomedoprojeto
rode o comando php artisan migrate
oque pode dar errado no migrate ?
1 : Arquivo env do laravel mal configurado : veja este exemplo
![](https://private-user-images.githubusercontent.com/6370415/268830076-778dc1e8-fcc7-4859-9730-cf71384eac7f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxODc0MzUsIm5iZiI6MTcyMjE4NzEzNSwicGF0aCI6Ii82MzcwNDE1LzI2ODgzMDA3Ni03NzhkYzFlOC1mY2M3LTQ4NTktOTczMC1jZjcxMzg0ZWFjN2YucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjhUMTcxODU1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OWFjMjllMTNmZWIyMjZlYzE4YmM3MmUwMWNlNDY4NTAwNGZhMjUyZDk5ZDRiMzcxMTViYTkwNWMzOGRjZjQwNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.2AiLURMPmOpUOMSjDHlTkZ2cBMgpa-zLN8tGfRNnWoY)
note que o DB_HOST possui o mesmo nome do arquivo de configuração
![](https://private-user-images.githubusercontent.com/6370415/268830168-aad334f0-86b4-428f-baf7-c45c3e24ddae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxODc0MzUsIm5iZiI6MTcyMjE4NzEzNSwicGF0aCI6Ii82MzcwNDE1LzI2ODgzMDE2OC1hYWQzMzRmMC04NmI0LTQyOGYtYmFmNy1jNDVjM2UyNGRkYWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjhUMTcxODU1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODA4ZjY1YmIzNTBjNDg1MjVlNTMwNzQ0YzFkNzQ0ZjFjYmE3NzE2YmQxM2QzNzBhMjA1NTk2NDVlY2M2OTdmMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.tVWVvfUpNRq0qTAgsuhFlnTPgTB7ErBqgApgqKd1jK8)
valide também as configurações de usuario e senha.
2: Pode ser que o banco de dados descrito no arquivo .yml não tenha sido criado, neste caso você pode
optar por logar no banco criado do postgres em seu terminal com a porta configurada "5499" ou acessar o terminal do postgresql
com o comando docker exec -it laravel-docker-postgresql-pgsql-1 bash (lembre-se que o nome descrito é o da configuração e mais o número gerado pelo docker.
você pode encontralo em sua interface grafica :
![](https://private-user-images.githubusercontent.com/6370415/268832034-e2871b55-6e29-4e7a-b1ca-2741028a61e2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxODc0MzUsIm5iZiI6MTcyMjE4NzEzNSwicGF0aCI6Ii82MzcwNDE1LzI2ODgzMjAzNC1lMjg3MWI1NS02ZTI5LTRlN2EtYjFjYS0yNzQxMDI4YTYxZTIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjhUMTcxODU1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTUxZWY1Y2Y0ZDcwZjQyODA0ZjRjZTcxZThmZDZmYjVjNDdhNzgzNWQyOGQxZTA1ODc3ZTMwYzE0YTY1OGZmNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.vtF0z_CDO94TRZOCVCCsjWHyoWcKXtF6SHG-nzo6LRU)
em seguida rode o comando para criar um banco de dados manualmente : psql -U postgres -c "create database nomedobanco";
Após a migrations ser bem sucedida rode o php artisan serve --host 0.0.0.0 e acesse seu site no localhost:8000