# Step-by-Step Guide: Laravel + InfyOm + Docker
## 1. Install Laravel (Correctly)
First, create a new Laravel project:
composer create-project –prefer-dist laravel/laravel my-laravel-app
Then, move into the project directory:
cd my-laravel-app
At this point, your folder structure should look like this:
“`
my-laravel-app/
│── app/
│── bootstrap/
│── config/
│── database/
│── public/
│── resources/
│── routes/
│── storage/
│── vendor/
│── .env
│── artisan
│── composer.json
│── …
“`
✅ Now Laravel is ready!
⸻
## 2. Set Up Docker for Laravel
Now, inside your Laravel project (my-laravel-app/), create a Docker setup.
📌 Create docker-compose.yml
Create a docker-compose.yml file:
“`
version: ‘3.8’
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: always
working_dir: /var/www
volumes:
– .:/var/www
depends_on:
– mysql
– redis
networks:
– laravel
nginx:
image: nginx:latest
container_name: laravel_nginx
restart: always
ports:
– “8080:80”
volumes:
– .:/var/www
– ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
– app
networks:
– laravel
mysql:
image: mariadb:latest
container_name: laravel_mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: laravel
ports:
– “3306:3306”
volumes:
– db_data:/var/lib/mysql
networks:
– laravel
redis:
image: redis:latest
container_name: laravel_redis
restart: always
networks:
– laravel
networks:
laravel:
driver: bridge
volumes:
db_data:
“`
⸻
### Create Dockerfile
Create a Dockerfile inside your Laravel project:
“`
FROM php:8.2-fpm
# Install system dependencies
RUN apt-get update && apt-get install -y \
zip unzip curl git libpng-dev libjpeg-dev libfreetype6-dev libonig-dev libxml2-dev libzip-dev \
&& docker-php-ext-configure gd –with-freetype –with-jpeg \
&& docker-php-ext-install gd mbstring pdo pdo_mysql zip xml
# Install Composer
COPY –from=composer:latest /usr/bin/composer /usr/bin/composer
# Set working directory
WORKDIR /var/www
# Copy existing application files
COPY . /var/www
# Ensure required directories exist
RUN mkdir -p /var/www/storage /var/www/bootstrap/cache
# Set permissions
RUN chown -R www-data:www-data /var/www \
&& chmod -R 775 /var/www/storage /var/www/bootstrap/cache || true
CMD [“php-fpm”]
“`
⸻
### Create Nginx Config
Inside your Laravel project, create docker/nginx/default.conf:
“`
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
“`
⸻
### Start Docker
Now, run:
docker-compose up -d –build
✅ Laravel is now running inside Docker!
⸻
## 3. Install InfyOm Generator
Now that Laravel is running, install InfyOm Labs Laravel Generator inside the Docker container.
Step 1: Install Required Packages
Run the following inside the app container:
“`
docker-compose exec app composer require infyomlabs/laravel-generator –dev
docker-compose exec app composer require laravel/ui
docker-compose exec app composer require infyomlabs/adminlte-templates –dev
“`
⸻
Step 2: Publish Config Files
Run:
“`
docker-compose exec app php artisan vendor:publish –provider=”InfyOm\Generator\InfyOmGeneratorServiceProvider”
docker-compose exec app php artisan vendor:publish –provider=”InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider”
“`
⸻
Step 3: Install UI for Laravel
Run:
“`
docker-compose exec app php artisan ui bootstrap –auth
“`
⸻
Step 4: Generate CRUD Scaffold
For example, if you want to generate a Post CRUD, run:
“`
docker-compose exec app php artisan infyom:scaffold Post –fromTable –tableName=posts
“`
✅ This will generate:
– Model: Post.php
– Controller: PostController.php
– Views: resources/views/posts/
– Routes: routes/web.php
– Migration: database/migrations/…_create_posts_table.php
Now, run migrations:
“`
docker-compose exec app php artisan migrate
“`
⸻
## 5. Run Laravel Server
Run Laravel inside the container:
“`
docker-compose exec app php artisan serve –host=0.0.0.0 –port=8000
“`
Visit http://localhost:8000 to see your Laravel app.
⸻
### Summary
– Step 1: Install Laravel
– Step 2: Setup Docker (docker-compose.yml, Dockerfile, nginx.conf)
– Step 3: Install InfyOm (composer require infyomlabs/laravel-generator)
– Step 4: Generate CRUD (php artisan infyom:scaffold ModelName)
– Step 5: Run Laravel (php artisan serve)
Now, your Laravel + InfyOm boilerplate is ready! 🚀🔥

