<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: shifas05</title>
    <description>The latest articles on DEV Community by shifas05 (@shifas05).</description>
    <link>https://dev.to/shifas05</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F143012%2F7f502df4-16a6-4ee0-9f14-53e33c534944.png</url>
      <title>DEV Community: shifas05</title>
      <link>https://dev.to/shifas05</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shifas05"/>
    <language>en</language>
    <item>
      <title>Dockerizing Laravel with Laradock: A Complete Local Development Setup Guide</title>
      <dc:creator>shifas05</dc:creator>
      <pubDate>Mon, 28 Jul 2025 14:15:15 +0000</pubDate>
      <link>https://dev.to/shifas05/dockerize-laravel-app-using-laradock-1ih2</link>
      <guid>https://dev.to/shifas05/dockerize-laravel-app-using-laradock-1ih2</guid>
      <description>&lt;p&gt;🚀 Level Up Your Laravel Development with Laradock (Part 2)&lt;br&gt;
In my last post, we explored why Dockerizing your Laravel app makes your life easier, cleaner, and production-ready. Now, let’s get our hands dirty and set it up using Laradock! 🔧&lt;/p&gt;

&lt;p&gt;🧰 Step 1: Install Docker &amp;amp; Docker Compose&lt;br&gt;
First, install Docker Desktop from the official site:&lt;br&gt;
👉 &lt;a href="https://www.docker.com/products/docker-desktop" rel="noopener noreferrer"&gt;https://www.docker.com/products/docker-desktop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📦 Step 2: Clone Laradock&lt;br&gt;
Clone the Laradock project to your machine:&lt;br&gt;
&lt;code&gt;git clone https://github.com/Laradock/laradock.git&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Navigate to the laradock folder and create your .env file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd laradock
cp .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚙️ Step 3: Set Up Services and Laravel App&lt;/p&gt;

&lt;p&gt;Let's say you want to run:&lt;/p&gt;

&lt;p&gt;A Laravel app (installed via Laravel Docs)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PHP 8.2&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;phpMyAdmin&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Update the following in your Laradock .env:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PHP_VERSION=8.2
NGINX_HOST_HTTP_PORT=8099
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start your containers:&lt;br&gt;
&lt;code&gt;docker-compose up -d nginx mysql phpmyadmin redis workspace&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🌐 Step 4: Configure Nginx for Your Laravel App&lt;/p&gt;

&lt;p&gt;Create a new Nginx site config file:&lt;br&gt;
laradock/nginx/sites/laravel-test-app.local.conf&lt;/p&gt;

&lt;p&gt;Paste this config (and make sure the root path matches your app name and location):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name laravel-test-app.local;
    root /var/www/laravel-test-app/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-upstream;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    error_log /var/www/laravel-test-app/storage/logs/laravel_error.log;
    access_log /var/www/laravel-test-app/storage/logs/laravel_access.log;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🗂️ Step 5: Add a Virtual Host&lt;/p&gt;

&lt;p&gt;Update your OS hosts file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Linux/Mac:&lt;br&gt;
Edit /etc/hosts and add:&lt;br&gt;
&lt;code&gt;127.0.0.1 laravel-test-app.local&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows:&lt;br&gt;
Edit C:\Windows\System32\drivers\etc\hosts with admin rights.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then restart the Nginx container:&lt;br&gt;
&lt;code&gt;docker-compose restart nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Visit in browser:&lt;br&gt;
👉 &lt;a href="http://laravel-test-app.local:8099" rel="noopener noreferrer"&gt;http://laravel-test-app.local:8099&lt;/a&gt;&lt;br&gt;
You'll see an SQL error until we configure the database.&lt;/p&gt;

&lt;p&gt;🛢️ Step 6: Configure Laravel Database&lt;/p&gt;

&lt;p&gt;Update your Laravel .env:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_test_app
DB_USERNAME=root
DB_PASSWORD=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create the database manually via phpMyAdmin or CLI.&lt;/p&gt;

&lt;p&gt;💡 Step 7: Run Migrations&lt;/p&gt;

&lt;p&gt;Enter the workspace container (this gives you access to PHP, Composer, Artisan, etc.):&lt;br&gt;
&lt;code&gt;docker compose exec --user=laradock workspace bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This runs a bash shell inside the container as the laradock user. It's best practice not to run things as root.&lt;/p&gt;

&lt;p&gt;Navigate to your Laravel project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd laravel-test-app
php artisan migrate --seed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And voilà — your Laravel app is ready! 🎉&lt;/p&gt;

&lt;p&gt;🧭 Step 8: Access phpMyAdmin (Optional)&lt;/p&gt;

&lt;p&gt;Edit .env in Laradock to enable phpMyAdmin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PMA_DB_ENGINE=mysql
PMA_PORT=8081
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit:&lt;br&gt;
👉 &lt;a href="http://localhost:8081" rel="noopener noreferrer"&gt;http://localhost:8081&lt;/a&gt;&lt;br&gt;
Log in with MySQL root credentials (root / empty password unless changed).&lt;/p&gt;

&lt;p&gt;📌 Bonus: You can enable almost any service (Redis, MongoDB, Mailhog, ElasticSearch, etc.) — all pre-configured in Laradock. Just spin up the relevant container.&lt;/p&gt;

&lt;p&gt;🖼️ Here’s what you should see when it works:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgx5o34z154zdw9whjkmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgx5o34z154zdw9whjkmu.png" alt="Laravel_welcome" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✅ Coming up next:&lt;/p&gt;

&lt;p&gt;"How to use multiple PHP versions in Laradock at the same time."&lt;/p&gt;

&lt;p&gt;👉 Follow me so you don’t miss it!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
