Skip to content

Latest commit

 

History

History
210 lines (148 loc) · 3.82 KB

README-docker.md

File metadata and controls

210 lines (148 loc) · 3.82 KB

Docker - Laravel

Docker

Image

A pretty simplified Docker Compose workflow that sets up a LEMP (Linux, NGINX, MySQL, PHP) network of containers for local Laravel development.

Ports

Ports used in the project:

Software Port
nginx 8080
phpmyadmin 8081
mysql 3306
php 9000
xdebug 9001
redis 6379

Use

To get started, make sure you have Docker installed on your system and Docker Compose, and then clone this repository.

  1. Clone this project:

    git clone https://github.com/supermavster/docker-laravel-8.git
  2. Inside the folder docker-laravel-8 and Generate your own .env to docker compose with the next command:

    cp .env.example .env
  3. You need Create or Put your laravel project in the folder source; to create follow the next instructions Here.

  4. Build the project whit the next commands:

    docker-compose up --build

Remember

The configuration of the database must be the same on both sides .

# .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password
DB_ROOT_PASSWORD=secret
# source/.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password

The only change is the DB_HOST in the source/.env where is called to the container of mysql:

# source/.env
DB_HOST=mysql

Special Cases

To Down and remove the volumes we use the next command:

docker-compose down -v

Update Composer:

docker-compose run --rm composer update

Run compiler (Webpack.mix.js) or Show the view compiler in node:

docker-compose run --rm npm run dev

Run all migrations:

docker-compose run --rm artisan migrate

This is where your Laravel app goes

Add your Laravel project here (or create a new blank one).


Note: IF exist problems generate the project delete this README.md


Remember

The configuration of the database must be the same on both sides .

# .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password
DB_ROOT_PASSWORD=secret
# source/.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password

The only change is the DB_HOST in the source/.env where is called to the container of mysql:

# source/.env
DB_HOST=mysql

Help

A little help to create the project:

Make a new Project

docker-compose run --rm composer create-project laravel/laravel .

Copy Environment

cp .env.example .env

Install Libraries from Composer

docker compose run --rm composer install

Install Libraries from Node

docker compose run --rm npm install

Clear/Clean the project

docker compose run --rm artisan clear:data
docker compose run --rm artisan cache:clear
docker compose run --rm artisan view:clear
docker compose run --rm artisan route:clear
docker compose run --rm artisan clear-compiled
docker compose run --rm artisan config:cache
docker compose run --rm artisan storage:link

Generate Keys

docker compose run --rm artisan key:generate

Run migrations

docker compose run --rm artisan migrate --seed
docker compose run --rm artisan october:migrate

Run Passport (Optional)

docker compose run --rm artisan passport:install