ItSolutionStuff.com

Laravel Docker #1 – Basic Set Up for Local Development

By Hardik Savani August 30, 2025
Laravel

If you want to use Laravel with Docker, this guide will help you. Docker makes it very easy to create and manage your development setup without installing everything on your computer.

In this article, we will create a Laravel project and then set up Docker step by step. We will make a Dockerfile, an Nginx config file, and docker-compose.yml file to run Laravel inside Docker.

Step 1: Create Laravel Project

First, create a fresh Laravel project by running the below command:

laravel new my-app

Step 2: Create Dockerfile

Now, create a new file named Dockerfile and add the following code:

Dockerfile

FROM php:8.3-fpm WORKDIR /var/www/html RUN apt-get update & apt-get install -y libzip-dev unzip && docker-php-ext-install zip pdo_mysql # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer COPY . /var/www/html # Install PHP dependencies RUN composer install RUN chown -R www-data:www-data /var/www/html RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache /var/www/html/vendor RUN chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache /var/www/html/vendor EXPOSE 80

Step 3: Create NGINX Config File

Next, create an Nginx config file at .docker/nginx/default.conf and add this code:

.docker/nginx/default.conf

server { listen 80; index index.php index.html; root /var/www/html/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include fastcgi_params; fastcgi_pass web:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; } location ~ /\.ht { deny all; } }

Step 4: Create docker-compose.yml

Finally, create a docker-compose.yml file and place the following code in it:

docker-compose.yml

services: web: build: context: . dockerfile: Dockerfile image: my-laravel-app volumes: - .:/var/www/html - /var/www/html/storage - /var/www/html/bootstrap/cache working_dir: /var/www/html user: "www-data" nginx: image: nginx:latest ports: - "8080:80" volumes: - .:/var/www/html - ./.docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - web

Run Laravel App:

All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:

php artisan serve

Now, Go to your web browser, type the given URL and view the app output:

http://localhost:8080

Output:

Now you can use.

Hardik Savani

Hardik Savani

I'm a full-stack developer, entrepreneur, and founder of ItSolutionStuff.com. Passionate about PHP, Laravel, JavaScript, and helping developers grow.

📺 Subscribe on YouTube

More Posts You'll Love