Containerize Laravel Dengan Docker Dan CI/CD Menggunakan GCP Serverless
Halo teman teman kali ini saya akan membahas topik yang cukup menarik buat saya dan baru saja saya pelajari dan mungkin teman teman butuhkan juga, tulisan ini saya buat agar bisa berkontribusi untuk programmer indonesia dan sebagai review jika suatu saat saya lupa materinya. tanpa berlama lama mari kita mulai dari pondasi di awal.
Yang Ingin Membantu Saya Untuk Terus Berkontribusi Boleh Banget Klik Dibawah
1.Theory
Docker : layanan yang menyediakan kemampuan untuk mengemas dan menjalankan sebuah aplikasi dalam sebuah lingkungan terisolasi yang disebut dengan container. Dengan adanya isolasi dan keamanan yang memadai memungkinkan kamu untuk menjalankan banyak container di waktu yang bersamaan pada host tertentu.
CI : pengintegrasian kode ke dalam repositori kode kemudian menjalankan pengujian secara otomatis, cepat, dan sering.
CD: praktik yang dilakukan setelah proses CI selesai dan seluruh kode berhasil terintegrasi, sehingga aplikasi bisa dibangun lalu dirilis secara otomatis.
GCP: produk layanan komputasi cloud yang dimiliki oleh Google. GCP mencakup infrastruktur cloud publik dan G-Suite versi enterprise dari Android, Chrome, dan antarmuka pemrograman aplikasi untuk pembelajaran mesin dan layanan pemetaan perusahaan.
2.Alasan
Kenapa Menggunakan Docker?
Lingkungan Terisolasi
Bisa Membuat Banyak Versi Aplikasi
Bisa Mencoba Di Beberapa Envirotmen Berbeda
dll.
Kenapa Menggunakan CI/CD ?
Hype Di jaman sekarang
Dapat menguji kode secara otomatis sebelum production
Mempercepat deployment
Mempermudah mendapatkan feedback dari user karena deployment juga cepa
dll
Kenapa Menggunakan GCP ?
Hype Di jaman sekarang
Dunia Serba cloud sekarang
Punya Akun Percobaan(alasan pribadi)
Maintenance Mudah
Di support lansung oleh google
Tool yand disediakan banyak
dll.
Praktik kali ini kita akan menggunakan laravel sebagai wadahnya untuk belajar dan kita tidak akan belajar mengenai bagaimana menginstall docker dan bagaimana menggunakan dan mendaftar gcp. jadi mungkin teman2 yang belum pernah belajar itu semua sebaikya di pelajari terlebih dahulu karena materi kali ini akan lansung pada intinya saja.
3.Praktik Dockerize Laravel
Silahkan Install Laravel di situs resminya
silahkan install docker di komputer anda
masuk ke project laravel kamu dan buat sebuah file dengan nama
Dockerfiledi folder rootIsikan File Seperti Di Bawah

Saya akan menjelaskan beberapa di bawah untuk yg tidak ada penjelasan silahkan lihat komentar di file
From php:7.3-cli-alpine — artinya project ini di bangun pada php 7.3.alpine
WOKDIR — Artinya entry point tempat kita bekerja nanti/folder tempat file dibangun
Mencoba Di Lokal Dengan Perintah
docker build -t laravel-docker:latest-t=tag/nama ->perintah ini untuk membangun image di dockerdocker run -p 8000:8001 laravel-docker:latest-> untuk menjalankan container di docker agar bisa di coba di localJika file suda running dan tidak ada masalah silahkan buka browser dan kunjungi
localhost:8000maka project laravel akan diakses.
4. Praktik Continius Integration dengan github
masih melanjutkan project yang sama
buat sebuah folder di root dengan nama
.github/workflowsbuat sebuah file dengan nama
laravel-github-actions.ymldi dalam folder yang telah di buat diatas note:(nama file bisa di isi dengan sesuka hati)Isi file dengan
Untuk penjelasan silahkan lihat di komentar
Buat sebuah repository dan hubungkan dengan project laravel yang sekarang
commit dan push project kalian ke github
kunjungi
Actionsdi repo kalian

Jika Pipeline kalian berhasil di bangun akan seperti diatas.
5.Continius Development Dengan GCP Cloud Run Serverless
Mempunyai akun gcp silahkan mendaftar ke GCP nya lansung
Menginstall Gcloud Cli https://cloud.google.com/sdk/docs/install
Melanjutkan File Yang Sama
Login Ke GCP Dengan Cli
gcloud auth login silahkan masuk dengan akun yang telah di buat sebelumnya
Membuat Project Id Dengan Cli
Atau ke google console untuk buat project

Enable Cloud Build Dan Container Registry
gcloud services enable cloudbuild.googleapis.com run.googleapis.com containerregistry.googleapis.com
Atau console


Create Service Account
Atau console

Memberikan Permission Service Account
Membuat key di service Account

Klik add key. pilih json dan simpan json yang terdownload nanti
Setelah Semua Selesai. kita repo github pilih setting dan pilih secrets
pilih actions


Buat Gcp Secret Kalian

GCP_APP_NAME=nama_akun_kamu(sembarang)
GCP_CREDENTIALS=paste_isi_json_key_disini_yg_sudah_didownload
GCP_EMAIL=nama_akun@project_id.iam.gserviceaccount.com
GCP_PROJECT_ID=project_id_kalian
Setelah Mengatur kita kembali ke kodingan dengan menambahkan isi dari file sebelumnya
laravel-github-actions.ymldengan
Penjelasan Ada di File
Setelah itu commit dan push ke repository
Lihat Ke github actions workflownya

Setelah itu kunjungi google console kalian dan masuk ke cloud run untuk melihat alamat website kalian

Yang Ingin Membantu Saya Untuk Terus Berkontribusi Boleh Banget Klik Dibawah
Selesai
Sekian Pembahasan Mengenai Dockerize And Ci Cd Serverles Di GCP. jika ada pertanyaan silahkan. Salam Programmer Makassar
Last updated
