Ads 970x90

List Labels

iklan banner

Newsletter

Tutorial Instalasi Laravel + Docker (Laradock) Tutorial Laravel

1 comment

Tutorial Instalasi Laravel + Docker (Laradock)

Hohoho, selamat malam, di kesempatan akan menjelaskan tentang tutorial laravel Tutorial Instalasi Laravel + Docker (Laradock) simak selengkapnya 

Cara encer melahirkan environment coding di local semakin baik dengan tools Devops yang berulang ngehits dikalangan developer!

Kiddy

Haloooooo gengs! Mumpung lagi anget + inget gue mau berbagi insight akan salah satu ilmu di Devops nih gengs!

Sebelum mulai membegari ya gue alkisah dulu, jadi gue baru saja dapet claps dari agan Ihwan ID ala artikel gue yang ngebahas Fastify. Nah jujur aja gue suka Kepo sama yang ngefollow gue dan ngasih claps serta response ke artikel gue. Kebetulan mas Ihwan ini ternyata nulis akan Laradock di blognya. Gue yang jua berulang pengen move on dari Homestead penasaran sama Laradock. Akhirnya gue kulik dan selesai, gue bisa instalasi dan troubleshoot masalah yang kebolehjadian siap dan bakal gue jelasin di artikel ini.

Bagi yang gatau barang apa itu pengertian Devops yaudah kecil aja nih ya.

DevOps is a software engineering culture and practice that aims at unifying software development and software operation.

Atau yang kalo di terjemahin artinya adalah ilmu mengenai software engineering yang berhubungan melantas sama development dan operational sebuah software. Ya bisa dibilang si Devops ini biasanya udah erat main dengan bentuk operasi dan software-software pendukungnya kaya Server Apache, Nginx, Tomcat, bergerak jua software redis, beanstalk, rabbitmq dll yang berhubungan dengan operasi sebuah software. Selain itu Devops jua harus adicita trouble shooting yang bakal dipake sebuah software, misalnya Laravel 5.7 harus pake PHP 7.2 bergerak beka pake FPM alias FastCGI yang cocok sama environment tuh server. Devops jua harus bisa nyiapin server buat development. Nah oleh karena itu bisa dibilang ini anak Adam bakalan puyeng amat sangat di server, karena kalo salah setting ya bisa ga jalan aplikasinya HEHEHE.

Nah seorang backend pengembang jua sebenernya harus punya ilmu akan Devops, ya sikit-sikit paling nggak bisa lah setting Laravel pake Nginx, MySQL / Maria DB / MongoDB dan semuanya harus manual tanpa CPANEL (sekali lagi… tanpa CPANEL). Jadi buat anda yang lagi ngandelin CPANEL ya maap-maap aja nih ngga bisa buat jadi Devops hehehe.

Oke next setelah ngebahas Devops gue mau bahas berulang kok pake Docker.

Docker itu ibarat sebuah kontainer, bedanya sama Homestead apasih docker? Homestad itu adalah sebuah VM (Virtual Machine).

http://bigdata-madesimple.com/why-we-chose-docker-to-build-our-data-processing-platform/

Dari gambar diatas bisa dijelasin dengan gampang, docker itu sebelah kanan dan VM sebelah kiri. Docker bisa dibilang sebagai engine yang udah siap dipake dengan cara numpang ke si OS. Sedangkan si VM itu adalah OS yang numpang kedalam sebuah OS itu seorang diri (OS tamu).

Gambaran VM

Pandangan saya ke docker kurang bertambah agaknya kaya gini, ibarat bangunan kos dengan kamar mandi dalam masing-masing, ambillah si A B C D adalah VM alias OS tamu yang diibaratkan sebagai kamar. VM butuh bagian seorang diri buat jalanin barang apa yang mengatur mau dan mengatur butuhkan. VM jua butuh bagian yang nggak alit loh dibanding sama Docker. Jadi bisa dibilang bertambah expensive lah buat jalanin sebuah OS tamu. Tapi ya itu tergantung kebutuhan kalian.

Gambaran Docker

Sedangkan Docker itu ibarat bangunan kos yang kamar mandinya, bagian tamunya, kamar jemurannya bisa dipake bareng-bareng. Jadi si A B C D ini adalah aplikasinya yang melantas bisa ngakses resource yang sama yang menduga si docker siapkan.

Nah hendaknya ga bingung ya gambaran awalnya wkwkwk. Lanjottt!

Jadi si Laradock ini bisa dibilang ya mirip kaya Laravel Homestead loh, kok gitu? Karena si Laradock ini punya software daleman yang ajib gila mirip coy sama Homestead.

  1. Redis
  2. MySQL
  3. MariaDB
  4. Postgre SQL
  5. Jenkins
  6. RabbitMQ
  7. Laravel Echo
  8. Mongo (Bahkan siap MongoDB)
  9. Mailu
  10. Gitlab
  11. Beanstalk
  12. MsSQL
  13. Apache
  14. Nginx

Dah segitu aja deh lagi berjibun padahal takut kepenuhan gue wkwkw bagus amat sangat pokoknya. Mantapu lah!

Kelebihan dari Docker vs Vagrant seorang diri adalah Docker bisa menentukan barang apa yang sebenernya aplikasi saya butuhkan, bukan menyediakan hal yang (mungkin aja) anda butuhkan. Jadi pola pikirnya adalah, dengan Docker saya tau barang apa yang saya butuhin dan saya install yang saya butuhkan saja. Sedangkan dengan Vagrant saya disediain barang apa aja ala impulsif baik saya butuh alias enggak.

Nah oke saya siap mulai ya! WKWKWK kebanyakan ngoceh daritadi.

Untuk Windows silahkan download dimari.

Untuk Linux kalian paling ajib, tinggal jalanin aja command dibawah

sudo apt-get install docker

sudo apt-get install docker-compose

Syaratnya harus siap docker dan docker-compose.

Oke kalo udah lanjut. Buat sebuah folder dimanapun, kalo bisa agaknya windows di C:/ aja hehe bergerak kasih nama docker.

Kalo udah, silahkan masuk ke dalam folder docker bergerak jalanin di command prompt kalian.

git clone https://github.com/Laradock/laradock.git

Kita bakal ngeclone isi file laradock yang menduga berisi environment afdal buat pengembang PHP.

Kalo udah silahkan masuk ke dalam folder laradock bergerak buat command berikut buat linux. Kita copy file env-example buat jadi environment filenya.

cp env-example .env

Untuk windows ya pake notepad++ aja huehehe.

Kalo sudah melantas saya build nyok container kita.

Pada selanjutnya saya bakal mendownload bandela kita, kecepatan download ini tergantung kecepatan internet dan menggunakan kuota yang tidak kecil (lebih dari 200MB) tapi ngga bakal sebanyak Vagrant agaknya karena saya gaperlu download OS.

Sebelum dijalankan monggo di melihat bagi yang windows apakah XAMPP nya lagi bercahaya dan bagi linux apakah LAMPP nya lagi nyala, karena andaikan lagi bercahaya port 3306 aka default MySQL bakal ketabrak sama instalasi si docker. Monggo dimatiin dahulu alias agan-agan bisa berganti port si Docker MySQL di file .env didalam folder Laradock.

sudo docker-compose up --build -d nginx mysql phpmyadmin redis workspace

Docker harus menggunakan sudo karena saya docker bakal kecil merubah isi dalam bentuk linux saya buat melahirkan container. Apabila anda ingin tanpa menggunakan sudo bisa dibaca disini https://docs.docker.com/install/linux/linux-postinstall/ #Thanks to Refda

Notes: nginx mysql phpmyadmin redis workspace adalah tools yang bakal saya bangun, anda dapat menggantinya bertemu dengan kebutuhan anda bagai rabbitmq, postgre, laravel echo. Semua yang siap di ENV bisa anda gunakan buat di build. Tinggal tambahin nama foldernya saat anda melakukan compose up. Tambahan command Build digunakan kalo saya pertama kali ngebuild dan belum siap data mysql, nginx,phpmyadmin, redis sama sekali. Bisa tanpa command tersebut sih, tapi tadi saya error sehingga saya harus nambahin command tersebut.

Seperti yang saya bilang diatas, saya cuma membutuhkan nginx mysql phpmyadmin dan redis. Workspace adalah area kerja bawaan si laradock, jadi harus ditulis. Sedangkan kalo aplikasi kalian ngga butuh phpmyadmin karena udah siap GUI Tools dan gapake redis karena gaada kebutuhan database dengan redis ya gaperlu ditulis. Jadi agan cuma bakal install nginx dan mysql. Be a smart developer, install what do you need, not what do you maybe need in the further.

Nah kalo udah kelar semuanya, berfaedah saya udah punya

  1. MySQL
  2. Redis
  3. Beanstalk

Ketiga tools ini bisa dipake di Project Laravel kalian.

Sekarang saatnya masuk kedalam si container, dengan cara

sudo docker-compose exec --user=laradock workspace bash

Nah kalo udah berjaya kalian bakal masuk kedalam bentuk bagai ini.

Kalo udah masuk berfaedah sekarang saya tinggal ngebuat projek aja nih. Pastiin internet lancar ya! Langsung aja jalanin command dibawah.

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

Otomatis bakal mendownload Laravel 5.7 (Terbaru) karena Laradock ini defaultnya menggunakan PHP 7.2, andaikan anda mau alih tinggal alih aja di .env dalam folder Laradock.

Kalo udah selesai saatnya saya nyetting dahulu nih konfigurasi si projek baru kita.

Masih didalam si container laradock, silahkan masuk ke folder laradock/nginx/sites

cd laradock/nginx/sites

Apabila udah masuk didalamnya kalian bisa tulis command

ls -l

Untuk melihat siap file barang apa saja didalamnya, ambillah tentunya kalian jua bakal melihat file .conf yang sudah siap didalamnya. Beruntungnya Laradock baik bgt udah nyiapin configuration laravel buat kita.

Caranya gampang banget, tinggal copy file laravel.conf.example ke blog.conf

cp laravel.conf.example blog.conf

Nah bakal terbuat file blog.conf, setelah itu edit file blog.conf dengan cara

nano blog.conf

Maka bakal ada settingan afdal khas NGINX buat ngatur lokasi dari project kita. Emang agak ribet agaknya dibanding Homestead, tapi agak loh nambah insight biar pas disuruh nginstall pake NGINX seorang diri gak bingung hehehe. Jadi pengembang kan emang harus belajar hal baru setiap harinya ^^.

Lanjot! Silahkan alih dibagian ini aja.

server_name laravel.test;

root /var/www/laravel/public;

menjadi

server_name blog.test;

root /var/www/blog/public;

Nah kalo udah sip banget, saya bisa keluar dari container dengan menuliskan command

exit

Kalo udah berfaedah saya harus ngedit file hosts di OS kita, buat windows silahkan pergi ke

C:\windows\system32\drivers\etc\hosts

untuk linux

cd /etc/

sudo nano hosts

Tambahkan baris dibawah ini.

127.0.0.1 blog.test

Nah berbatas jua di penghujung artikel, karena saya udah ngubah konfigurasi di nginx, alkisah saya perlu ngerestart si nginx buat ngebaca konfigurasi baru kita. Silahkan masukkan command dibawah.

docker-compose restart nginx

Nah kalo sudha direstart kaya begini.

Kalo udah direstart silahkan jalankan browser kalian buka http://blog.test dan silahkan melihat seorang diri magic yang menduga berjalan.

Sudah bepergian kan? mantap lah mantap. Eits saya belum selesai gan, siap sesuatu yang harus saya sampaikan.

Kalo silahkan agan buka file .env didalam docker. Cari bagian MySQL

### MYSQL #################################################MYSQL_VERSION=latest

MYSQL_DATABASE=default

MYSQL_USER=default

MYSQL_PASSWORD=secret

MYSQL_PORT=3306

MYSQL_ROOT_PASSWORD=root

MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

Nah buat yang belum paham, ini adalah settingan yang bisa kalian berganti buat MySQL. Karena saya menggunakan latest saat defaultnya, berfaedah MySQL kalian menggunakan versi terbelakang yaitu 8.0.

MySQL ini bakal jadi masalah buat kalian karena default account dari MySQL menggunakan plugin caching_sha2_password sehingga dapat dipastikan project Laravel kalian bakalan error pas konek ke database. Hal ini umum berjalan ala MySQL versi > 5.6 bagai 5.7 dan 8.0. Tapi tenang saya punya solusinya. Bahkan project Node JS saya aja ala error karena masalah ini wkwkwk.

Error authentication MySQL v8.0

Pertama konek dahulu ke database kalian dengan MySQL GUI di laptop kalian dengan data sbb:

host: 127.0.0.1

username: root

password: root

Kalo gagal bisa nyoba dibawah ini

host: 127.0.0.1

username: default

password: secret

Nah setelah masuk silahkan masukkan query dibawah ini, saya bakal ngebuat user dengan kredibel username homestead dan password secret.

use mysql;

CREATE USER ‘homestead’@’%’ IDENTIFIED WITH mysql_native_password BY ‘secret’;

GRANT ALL PRIVILEGES ON *.* TO ‘homestead’@’%’;

FLUSH PRIVILEGES;

Kalo misalnya agan-agan ala males buat user baru jua bisa kok ngubah tipe plugin si root dengan cara:

use mysql;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

ALTER USER 'homestead'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

Nah mantap kalo sudah silahkan di test dengan akun homestead alias akun root yang menduga agan ubah, absolut ampuh bisa connect berulang Laravelnya ke database.

Q: Bisa gak gan kalo saya pake versi 5.6 aja MySQLnya?

A: Bisa banget, tinggal berganti aja versi MySQL nya di .env si Laradock, tapi dini berganti jangan lupa dihapus dahulu folder mysql didalam folder .laradock, buat Linux dia siap di Home folder kalian. Untuk windows setau saya adanya di folder C:. Setelah dihapus tinggal jalanin

docker-compose up --build -d mysql

Jadi deh mysql agan siap digunakan!

Okeh agak-agak itu aja yang bisa saya beri ya buat Docker. Selain bertambah ringan, bertambah worth it jua bagi saya karena agan gaperlu Booting lama saat mulai docker kedua kalinya abis install. Bahkan bertambah cepet dari Homestead loh bootingnya hahaha.

Semoga bermanfaat dan happy coding ^^!

oke detil mengenai Tutorial Instalasi Laravel + Docker (Laradock) semoga tulisan ini berfaedah salam

tulisan ini diposting pada kategori tutorial laravel, tutorial laravel #16, tutorial laravel #18, , tanggal 04-08-2019, di kutip dari https://medium.com/@kiddy.xyz/tutorial-instalasi-laravel-docker-laradock-772e5d774a7

Related Posts

1 comment

  1. https://kiddyxyz.medium.com/tutorial-instalasi-laravel-docker-laradock-772e5d774a7
    mirip ya?, ga tau mana yg plagiat, atau dua-duanya plagiat

    ReplyDelete

Post a Comment