Seputar Dunia IT dan Fakta Unik Lainnya

Friday, 12 July 2019

Tutorial Instalasi Laravel pada Docker (Khusus Pengguna Linux/Ubuntu) | 2019


Apa itu Docker?

Docker adalah sebuah project open-source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan.

Kenapa harus Docker?

Dengan menggunakan Docker, kita jadi lebih mudah untuk proses development dan testing sebuah proyek berbasis websiste yang kita buat. Sebab dengan menggunakan Docker orang lain yang akan melakukan testing aplikasi kita tidak perlu menginstall web server dan dependency satu persatu di masing-masing sistem operasi yang mereka gunakan karena semua kebutuhan untuk aplikasi kita sudah terinstal di Docker Container.

TOTURIAL

1. Membuat Laravel

Sebelum membuat laravel, anda harus menginstal dahulu Composer. Bila belum menginstall laravel, install terlebih dahulu, tutorialnya bisa lihat disini. Bila sudah install laravel dengan mengetik perintah berikut : 

composer create-project --prefer-dist laravel/laravel my_app


Tunggu beberapa saat, bila koneksi anda bagus, proses instalasi akan cepat. Bila terjadi kesalahan, itu mungkin karna kalian belum benar instal Composernya. 

Setelah menginstall laravel, buka direktori laravel yang sudah diinstal tersebut dalam hal ini buka folder my_app dengan perintah 

cd my_app




Setelah itu untuk mengecek apakah aplikasi laravelnya berjalan, gunakan perintah berikut

php artisan serve




Cek pada browser kalian, http://127.0.0.1:8000 atau link yang diberikan perintah tersebut pada kalian. Akan muncul page default dari laravel seperti gambar dibawah ini :




Bila tampilannya seperti diatas, berarti kalian sudah selesai menginstal aplikasi laravel.


2. Menjalankan Laravel dengan Docker

Sebelumnya pastikan dahulu kalian sudah menginstal docker terlebih dahulu. Bila belum ikuti cara instal docker disini atau ketikkan perintah dibawah ini untuk menginstall laravel :

sudo apt-get install -y docker.io docker-compose


Bila sudah kita akan membuat kontainer. Pada folder my_app, kita buat 4 berkas yang masing-masing bernama app.dockerfile yang akan kita gunakan untuk menginstall php dan extensi php yang dibutuhkan seperti extensi untuk mysql, web.dockerfile yang akan digunakan untuk menginstal NGINX dengan configurasi virtual host pada berkas laravelVHost.conf, dan `docker-compose.yml` yang berisi layanan yang akan kita jalankan secara bersamaan.

app.dockerfile

FROM php:7-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev && apt cleanRUN pecl install mcrypt-1.0.2 && docker-php-ext-enable mcryptRUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev && apt cleanRUN docker-php-ext-install -j$(nproc) iconv pdo_mysql RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/RUN docker-php-ext-install -j$(nproc) gd 


WORKDIR /var/www 


web.dockerfile

FROM nginx:latest

ADD ./laravelVHost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www


 laravelVHost.conf

server {
    listen 80;
    index index.php index.html;
    root /var/www/public;

    location / {

        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}


docker-compose.yml

version: '3'

services:

  web:
    build:
      context: ./
      dockerfile: web.dockerfile
    volumes:
      - ./:/var/www
    restart: always
    ports:
      - "9090:80"
    links:
      - app

  app:

    build:
      context: ./
      dockerfile: app.dockerfile
    volumes:
      - ./:/var/www
    restart: always
    links:
      - database
    environment:
      - "DB_PORT=3306"
      - "DB_HOST=database"
  
  database:
    image: mysql:latest
    hostname: database
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: laravelDB
    ports:
        - "33065:3306"

  cache:

    image: redis:latest
    ports: 
      - "63795:6379"


.env

Pada .env , ganti menjadi seperti dibawah ini :

...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33065
DB_DATABASE=laravelDB
DB_USERNAME=root
DB_PASSWORD=secret
...



Setelah file diatas sudah disimpan di folder my_app, ketikan perintah dibawah ini :

docker-compose build



docker-compose up -d




Setelah selesai kalian buka browser kalian dan ketikkan localhost:9090 dan page default laravel akan muncul seperti dibawah ini :


Tetapi bila terjadi error Permission denied, ketikkan 2 perintah dibawah ini :

sudo chgrp -R www-data storage bootstrap/cache

sudo chmod -R ug+rwx storage bootstrap/cache



Selamat kalian sudah bisa melakukan Instalasi Laravel pada Docker.

Untuk melakukan perintah php artisan, sebaiknya kalian melakukan perintah berikan :

docker exec -it my_app_app_1 /bin/bash 


Lalu lakukan php artisan seperti migrate dan auth untuk melakukan registrasi dan login.

php artisan migrate


php artisan make:auth




Tampilan setelah melakukan perintah auth, bila melakukan register dan login



Register




Login




Tampilan Home




Begitulah Tutorial Instalasi Laravel pada Docker.Selamat Mencoba ^^





2 comments:

  1. ok kucoba dulu makasi info boss dan trims nie hehehe semoga situs nya juga tambah ramai ya sipppp

    ReplyDelete
  2. Awesome article, it was exceptionally helpful! I simply began in this and I'm becoming more acquainted with it better! Cheers, keep doing awesome
    All University BCOM 1st, 2nd & Final Year TimeTable 2020

    ReplyDelete

BILA ANDA MEMASUKKAN LINK HIDUP, MAKA AKAN OTOMATIS TERDELETE..