Laravel + Docker

Untuk menjalankan Laravel menggunakan Docker, berikut adalah langkah-langkah umum yang dapat Anda ikuti:

  • Pastikan Anda telah menginstal Docker di komputer Anda. Anda dapat mengunduh dan menginstal Docker Desktop sesuai dengan sistem operasi yang Anda gunakan.
  • Buat direktori baru untuk proyek Laravel Anda.
  • Di dalam direktori proyek, buat file Dockerfile tanpa ekstensi, dan tambahkan konfigurasi berikut:
FROM php:7.4-apache

# Menginstal dependensi yang diperlukan
RUN apt-get update && apt-get install -y \
    libzip-dev \
    unzip \
    git \
    && docker-php-ext-install zip

# Mengaktifkan modul Apache yang diperlukan
RUN a2enmod rewrite

# Mengatur direktori kerja
WORKDIR /var/www/html

# Menyalin file Laravel ke dalam kontainer
COPY . /var/www/html

# Menginstal dependensi PHP menggunakan Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer install

# Menentukan hak akses yang diperlukan
RUN chown -R www-data:www-data /var/www/html

Buat file docker-compose.yml tanpa ekstensi, dan tambahkan konfigurasi berikut:

version: "3"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8080:80
    volumes:
      - .:/var/www/html
    restart: always
  • Buka terminal atau command prompt, lalu arahkan ke direktori proyek Anda.
  • Jalankan perintah docker-compose up -d untuk memulai kontainer Docker.
  • Setelah kontainer selesai dibangun, Anda dapat mengakses proyek Laravel melalui http://localhost:8080 di browser Anda.

Dengan konfigurasi tersebut, Docker akan membuat kontainer menggunakan PHP dan Apache sebagai server web. File proyek Laravel akan disalin ke dalam kontainer, dan dependensi akan diinstal menggunakan Composer.

Anda juga dapat menyesuaikan konfigurasi Dockerfile atau docker-compose.yml sesuai dengan kebutuhan spesifik proyek Laravel Anda. Pastikan Anda sudah memahami dasar-dasar Docker dan konfigurasi Docker untuk mengelola dan menyesuaikan lingkungan pengembangan Anda.

Nginx Web Server

Jika Anda ingin menggunakan Nginx sebagai web server untuk menjalankan proyek Laravel dengan Docker, Anda dapat mengikuti langkah-langkah berikut:

  1. Pastikan Anda telah menginstal Docker di komputer Anda. Jika belum, Anda dapat mengunduh dan menginstal Docker Desktop sesuai dengan sistem operasi yang Anda gunakan.
  2. Buat direktori baru untuk proyek Laravel Anda.
  3. Di dalam direktori proyek, buat file Dockerfile tanpa ekstensi, dan tambahkan konfigurasi berikut:
FROM php:7.4-fpm

# Menginstal dependensi yang diperlukan
RUN apt-get update && apt-get install -y \
    libzip-dev \
    unzip \
    git \
    && docker-php-ext-install zip

# Menginstal Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Mengatur direktori kerja
WORKDIR /var/www/html

# Menyalin file Laravel ke dalam kontainer
COPY . /var/www/html

# Menginstal dependensi PHP menggunakan Composer
RUN composer install --no-dev --no-interaction --no-scripts --optimize-autoloader

# Menentukan hak akses yang diperlukan
RUN chown -R www-data:www-data /var/www/html

# Menyalin konfigurasi nginx
COPY nginx.conf /etc/nginx/sites-available/default

Buat file docker-compose.yml tanpa ekstensi, dan tambahkan konfigurasi berikut:

version: "3"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/var/www/html
    ports:
      - 8080:80
    depends_on:
      - database
    restart: always

  database:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - db-data:/var/lib/mysql
    restart: always

volumes:
  db-data:

Buat file nginx.conf dan tambahkan konfigurasi berikut:

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/html/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;
    }
}
  1. Buka terminal atau command prompt, lalu arahkan ke direktori proyek Anda.
  2. Jalankan perintah docker-compose up -d untuk memulai kontainer Docker.

Setelah kontainer selesai dibangun, Anda dapat mengakses proyek Laravel melalui http://localhost:8080 di browser Anda.

Dalam konfigurasi ini, kita menggunakan Docker dengan PHP-FPM sebagai kontainer untuk menjalankan PHP, dan Nginx sebagai web server. File konfigurasi nginx.conf mengarahkan permintaan ke PHP-FPM di port 9000. Database MySQL juga ditambahkan ke dalam konfigurasi menggunakan kontainer MySQL.

Pastikan Anda menyesuaikan konfigurasi Dockerfile, docker-compose.yml, dan file konfigurasi Nginx sesuai

Close