Senin, 27 Februari 2023

Cara Deploy NodeJs Menggunakan CI/CD gitlab-ci.yml

Ada banyak cara untuk mengupload hasil pekerjaan menggunakan nodejs ke server baik staging atau production. Jika kita menggunakan gitlab untuk mengelola coding bersama team kita bisa menggunakan fiture CI/CD untuk melakukan deployment. Kita hanya perlu menentukan branch sebagai syarat kapan coding kita diperlukan upload ke server. Cara untuk memanfaatkan fiture tersebut cukup mudah. Cukup buat file gitlab-ci.yml di root directory project. Setelah itu copy perintah berikut :


Untuk penjelasan perintah diatas adalah sebagai berikut :
image: totorajo/pm2-node3:18-buster adalah docker image yang akan kita gunakan untukd deploy. Didalam docker images tersebut perlu diinstall apa yang menjadi keperluan apps nodejs berjalan. Kita bisa membuat versi sendiri sesuai kebutuhan. image: totorajo/pm2-node3:18-buster adalah docker image yang siap pakai keperluan build apps nodejs.

poc adalah nama pipeline atau bisa kita sebut sebagai nama proses supaya mudah dipahami. Silahkan rubah menjadi misal : staging, production atau istilah lain sesuai kebutuhan develop.

stage: deploy adalah nama tahapan proses upload. Bisa diganti dengan stage: build atau disesuaikan istilah berdasarkan flow team yang ada.

before_script: adalah proses instalasi service yang diperlukan. Step ini sama seperti kita mempersiapkan laptop kita sebelum mengerjakan project.

script: adalah proses yang kita lakukan dilocal ketika apps kita akan dilakukan testing. Dalam kasus ini kita akan melakukan build coding nodejs menjadi file pada directory dist/

only: kita isi branch mana yang menjadikan trigger deploy. Jika kita isi misal test, staging maka setiap ada push ke branch tersebut makan proses ci/cd akan berjalan.

$private_key_server adalah nama variabel dari private key untuk server yang akan menjadi tujuan upload. untuk melakukan setup variabel ini bisa dilakukan di menu setting CI/CD bagian variabel.



docker@120.226.138.129:/home/apps/ : docker@120.226.138.129 adalah username dan IP untuk login ssh server. Kemudian /home/apps adalah lokasi folder dimana file / coding akan diupload. Bisa sesuaikan dengan lokasi server yang dipakai.

Dengan menggunakan fiture ci/cd pada gitlab akan meningkatkan produktivitas karena kita bisa fokus pada pengembangan apps untuk keperluan upload ke server secara otomatis. Peran DevOps untuk keberhasilan implementasi cara tersebut diperlukan. Meski akan menjadi repot diawal percayalah selanjutnya team bisa lebih produktif. Jika proses pipeline berhenti dan terjadi error permission denied silahkan ikuti https://www.totorajo.web.id/2022/10/cara-mengatasi-key-permission-denied.html
Semoga membantu.

Selasa, 21 Februari 2023

Cara Menjalankan Go Run Main.go Pada Container

https://www.totorajo.web.id/2023/02/cara-menjalankan-golang-pada-docker.html. Silahkan dicoba terlebih dulu supaya bisa mengikuti artikel ini. Sebelumnya kita sudah berhasil membuat container yang didalamnya isinya Golang 1.20.

Selanjutnya bagaimana cara coding project kita bisa terbaca pada container. Sehingga kita bisa menjadikan go run main.go kemudian kita bisa akses hasil melalui browser. Pertama kita perlu melakukan pengecekan dulu apakah container yang kita buat sebelumnya sudah berhasil atau belum. Ketika perintah docker ps pada terminal dan jika berhasil maka akan tampil seperti berikut.



Kotak merah menunjukan ada container bernama golang dan berjalan di port 8060. 8060:8060 mungkin akan menjadikan bingung kenapa ada dua.  8060 pertama adalah port expose port yang kita akses dari browser. 8060 kedua adalah port apps dari golang yang kita buat. Jadi maksud 8060:8060 adalah mengakses port 8060 dari broswer yang diteruskan ke container apps dengan port 8060. Bagaimana jika port aplikasi misal 3000? Jika begitu berarti saat kita membuat container pada tutorial sebelumnya menuliskan portnya 8060:3000.



Perhatikan kotak merah ada list nama container. Kita perlu ingat nama tersebut untuk masuk kedalam container ditutorial ini kita akan masuk atau akses container dengan nama golang. Selanjutnya kita load coding project golang kita ke visual studio code kemudian lihat dimana project tersebut disimpan.



Jika D:\container\golang\ dalah directory yang kita mount pada saat kita membuat container maka seluruh directory yang ada dibawahnya akan tersedia di container yang sudah kita buat tadi. Untuk membuatkan jalankan perintah :

# docker exec -it golang bash 

Jika muncul root@c8524644d242:/go# selamat kita sudah berhasil akses container. Sampai disini ketika kita lihat directory /go/src maka seluruh file yang ada di D:\container\golang\lab\lab-golang-gin-jwt juga ada di  /go/src

Setelah kita sudah berada dicontainer maka kita bisa melakukan seluruh yang diperlukan dev golang. Sebagai contoh melakukan go run main.go



Disini kita sudah berhasil menjalankan go code di container yang source codenya dari drive D. Cara ini sangat membantu ketika kita sedang melakukan riset. Semua yang kita coba diatas bisa juga kita implementasikan di programming dengan bahasa lain.  Semoga membantu

Cara Membuat Container Golang Pada Docker

Golang saat ini bahasa pemrograman yang menjadi pilihan untuk kebutuhan backend. Golang bisa kita install di berbagi sistem operasi seperti Windows, Linux dan MacOs. Jika kita sedang melakukan riset dan perlu banyak mencoba bahasa pemrograman menginstall pada Host OS terkadang menimbulkan masalah bentrok antar versi. Hal ini mengganggu produktivias kita jika sudah kejar deadline. Berikut cara mudah melakukan develop golang langsung pada docker container. Cara ini akan memberikan banyak kelebihan seperti :

1. Bisa melakukan pengujian source code di banyak versi golang.  Satu versi golang bisa diwakilkan satu container. Kita bisa membuat banyak container dengan versi yang berbeda-beda.

2. Sistem operasi host / laptop menjadi tidak banyak terinstall bahasa pemrograman. Hal ini menjadikan resiko install ulang karena kerusakan config menjadi kecil.

Cara Setup Golang Pada Docker Container
Tentukan directory pada host (laptop/pc) yang akan kita gunakan untuk develop. Jika menggunakan linux misal /home/toto/golang dan jika diwindows misal d:\dev\golang. directory tersebut adalah tempat  kita membuat project golang. Dalam penjelasan selanjutnya kita gunakan directory berdasarkan linux.

Kita cari docker image di docker hub atau bisa akses langsung pada url https://hub.docker.com/_/golang. Kita akan menggunakan versi latest (saat tulisan ini dibuat adalah versi 1.20.0). 

Jalankan perintah berikut pada terminal

Sampai disini kita sudah berhasil membuat container berisi golang yang siap untuk kita develop apps. Untuk bagaimana cara menjalankan docker run didalam container dan hasil bisa akses di browser silahkan baca artikel berikutnya di kategori docker. Semoga membantu.

DomaiNesia