Deployment Laravel dengan Docker

Oleh 5D TIGFIR AGNA FATUR 23-154 di 25 Sep 2025 | 18:22
5D TIGFIR AGNA FATUR 23-154

5D TIGFIR AGNA FATUR 23-154

Siswa
Postingan: 1
Anggota sejak: 5 Sep 2025

Docker adalah platform yang memungkinkan pengembang untuk mengemas aplikasi beserta seluruh dependensinya ke dalam sebuah container. Container ini dapat dijalankan di berbagai sistem operasi tanpa perlu melakukan konfigurasi ulang. Dengan demikian, aplikasi menjadi lebih konsisten, portabel, dan mudah untuk dikelola.


Langkah-Langkah Deployment

1. Struktur project

Pastikan struktur project Laravel Anda sesuai standar, dengan direktori utama berisi folder src.


2. Membuat Docker

Buat file bernama Dockerfile di root project Laravel Anda dengan isi sebagai berikut:


FROM php:8.2-fpm


RUN apt-get update && apt-get install -y \
    git curl libpng-dev libonig-dev libxml2-dev zip unzip \
    && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd


COPY --from=composer:2 /usr/bin/composer /usr/bin/composer


WORKDIR /var/www


COPY ./src /var/www


RUN chown -R www-data:www-data /var/www \
    && chmod -R 755 /var/www/storage /var/www/bootstrap/cache


EXPOSE 9000


CMD ["php-fpm"]



3. Konfigurasi Nginx

Buat file baru di root project Bernama nginx.conf yang berisi:

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;

    }

}


4. Membuat Compose

Buat file bernama Compose.yml dengan isi sebagai berikut:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: app
    restart: unless-stopped
    volumes:
      - ./src:/var/www
    networks:
      - laravel

  nginx:
    image: nginx:alpine
    container_name: laravel_nginx
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    networks:
      - laravel

  mysql:
    image: mysql:8.0
    container_name: laravel_mysql
    restart: unless-stopped
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - laravel

networks:
  laravel:

volumes:
  mysql_data:


5. Konfigurasi .env

Atur konfigurasi database pada file .env seperti berikut:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel


6. Build Container

Setelah file Dockerfile dan docker-compose.yml dibuat, jalankan perintah berikut di cmd:

docker-compose build


7. Menjalankan Conteiner

Jalankan container dengan perintah:

docker compose up



Jika berhasil, aplikasi Laravel dapat diakses melalui: http://localhost:8080


8. Migrasi Database

Untuk membuat tabel database, jalankan perintah ini di cmd:

docker exec -it app php artisan migrate


9. Testing dan Verifikasi

Pastikan aplikasi berjalan dengan benar. Cobalah mengakses endpoint bawaan Laravel atau buat route baru untuk memastikan Laravel berhasil dijalankan di dalam container


Tips Troubleshooting


1. Jika container tidak dapat dijalankan, periksa log dengan perintah: docker logs <nama_container> atau docker compose logs

2. Pastikan port 8080 dan 3306 tidak digunakan oleh aplikasi lain

3. Jika migrasi gagal, periksa konfigurasi database pada file .env


Penutup

Melalui modul ini, teleh memperaktikan cara membangun dan menjalankan cara membangun dan menjalanka Laravel menggunakan Docker. Teknik ini mendukung pengembangan modern yang menuntun efisiensi, konsistensi dan kemudahan  scaling. Penerapan konsep ini relevan dengan kebutuhan industri, sehingga keterampilan yang diperoleh dapat langsung diaplikasikan  dalam proyek nyata

25 Sep 2025 | 18:22
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.