How to Install and Setup Laravel with Docker Compose?
Hello Guys,
In this example, you will learn laravel docker setup. you'll learn run laravel with docker. This example will help you how to install and setup laravel with docker compose. let’s discuss about how to install and set up laravel with docker compose on ubuntu 22.04. Follow the below tutorial step of install laravel with docker compose.
Here, i will give you simple step by step example of how to install and set up laravel with docker compose on ubuntu 22.04 with apache. we will understand all the points in briefly.
What is Docker?
Docker is a platform that enables developers to automate the deployment of applications inside lightweight, portable containers. Containers are a form of lightweight, stand-alone, and executable software packages that include everything needed to run a piece of software, including the code, runtime, libraries, and system tools. Docker provides a consistent and reproducible environment for applications, making it easier to develop, deploy, and scale applications across different environments.
Key components of Docker include:
1. Docker Engine: This is the core component of Docker that manages containers. It consists of a server that runs in the background (daemon) and a command-line interface (CLI) that allows users to interact with the Docker daemon.
2. Docker Image: An image is a lightweight, standalone, and executable package that includes the application and its dependencies. Images can be used to create containers. Docker images are stored in repositories and can be versioned for easy sharing and distribution.
3. Container: A container is a running instance of a Docker image. Containers provide a consistent environment for applications, isolating them from the underlying system and ensuring that they run consistently across different environments.
4. Dockerfile: A Dockerfile is a text file that contains instructions for building a Docker image. It specifies the base image, adds application code and dependencies, and configures the environment within the container.
5. Docker Compose: Docker Compose is a tool for defining and running multi-container Docker applications. It allows you to define the services, networks, and volumes in a docker-compose.yml file, making it easy to spin up complex applications with multiple interconnected containers.
What is Docker Compose?
Docker Compose is a tool for defining and running multi-container Docker applications. It allows you to use a YAML file to configure your application's services, networks, and volumes, and then use a single command to create and start all the services defined in that configuration. Docker Compose simplifies the process of orchestrating multiple Docker containers, making it easier to manage complex applications.
Now, we will start step by step setup laravel 10 project with docker compose.
Step 1: Install Laravel 10
This step is not required; however, if you have not created the laravel app, then you may go ahead and execute the below command:
composer create-project laravel/laravel example-app
Step 2: Create a Dockerfile
Create a file named "Dockerfile" in the root of your Laravel project with the following content:
Dockerfile
FROM php:8.2-apache
WORKDIR /var/www/html
RUN apt-get update && apt-get install -y \
libzip-dev \
unzip \
&& docker-php-ext-install zip pdo_mysql
COPY . /var/www/html/
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
RUN chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
EXPOSE 80
Step 3: Create a VirtualHost Configuration
Create a file named "default.conf" in the ".docker/apache" directory (you may need to create the .docker/apache directory) with the following content:
.docker/apache/default.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/public
<Directory /var/www/html>
AllowOverride All
</Directory>
</VirtualHost>
Step 4: Create a docker-compose.yml File
Create a file named "docker-compose.yml" in the root of your Laravel project with the following content:
docker-compose.yml
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
image: my-laravel-app
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./.docker/apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
Step 5: Build and Run Docker Containers
Run the following commands to build and run your Docker containers:
docker-compose up -d --build
You can check your port "8080" is running or not by using follow command:
docker-compose ps
Then you can check following url on browser and check it will works:
http://localhost:8080
Output:
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- How to Encrypt Decrypt Database Fields in Laravel?
- Laravel DomPDF Table with Page Break Example
- Laravel 10 Livewire CRUD using Jetstream & Tailwind CSS
- Laravel 10 CRUD Application Example Tutorial
- How to Generate RSS Feed in Laravel?
- Laravel Pagination Pretty URL Example
- Laravel Send Scheduled Emails Tutorial
- Deploy Laravel Vapor Project with Docker Tutorial
- How to Run Migration and Seeder on Laravel Vapor?
- How to Image Upload in Laravel Vapor?
- How to Setup Database in Laravel Vapor?
- How to Deploy Project with Laravel Vapor?