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

Trakteer Saya

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 Dockerfile di folder root

  • Isikan 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 docker

  • docker run -p 8000:8001 laravel-docker:latest -> untuk menjalankan container di docker agar bisa di coba di local

  • Jika file suda running dan tidak ada masalah silahkan buka browser dan kunjungi localhost:8000 maka project laravel akan diakses.

4. Praktik Continius Integration dengan github

  • masih melanjutkan project yang sama

  • buat sebuah folder di root dengan nama .github/workflows

  • buat sebuah file dengan nama laravel-github-actions.yml di 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 Actions di repo kalian

Jika Pipeline kalian berhasil di bangun akan seperti diatas.

5.Continius Development Dengan GCP Cloud Run Serverless

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.yml dengan

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

Trakteer Saya

Selesai

Sekian Pembahasan Mengenai Dockerize And Ci Cd Serverles Di GCP. jika ada pertanyaan silahkan. Salam Programmer Makassar

Last updated