This comprehensive tutorial illustrates the seamless configuration of Laravel with Docker and Apache. Step-by-step, we'll guide you through creating a docker-compose setup and optimizing the 000-default.conf file for Laravel. If you're seeking a clear example and solution for installing Laravel with Docker and Apache, this user-friendly guide is tailored to simplify the process of configuring Laravel with Docker Compose and Apache.
In this tutorial, we'll walk you through the straightforward process of setting up Docker Compose for your Laravel application. We'll create a default.conf configuration file for Apache, ensuring proper path configuration and permissions. Follow these simple steps to streamline the setup:
Let's embark on a step-by-step journey to set up a Laravel 10 project using Docker Compose. Follow these sequential steps for a smooth and efficient setup process.
Step 1: Install Laravel 10
While this step is optional, if you haven't yet created the Laravel app, feel free to proceed by executing the following command:
composer create-project laravel/laravel example-app
Step 2: Create a Dockerfile
Create a file named 'Dockerfile' at the root of your Laravel project and add 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
Generate a file named 'default.conf' in the '.docker/apache' directory (create the directory if necessary) and include the following content:
.docker/apache/default.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/public
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Step 4: Create a docker-compose.yml File
Generate a 'docker-compose.yml' file at the root of your Laravel project, and include 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
Execute the following commands to build and run your Docker containers:
docker-compose up -d --build
To verify if your port '8080' is operational, use the following command:
docker-compose ps
Afterwards, open your web browser and navigate to the following URL to confirm whether it is functioning:
http://localhost:8080
Thank you! If you need any more assistance or have further questions, feel free to ask.