ditulis oleh: Eggy, Solution Architect Alibaba Cloud Indonesia
Di era pengembangan aplikasi pada saat ini kita sering mendengar dan membaca mengenai Continuous Integration. Pada dasar nya Continuous Integration adalah proses otomatisasi di dalam sebuah pembuatan aplikasi yang bertujuan untuk mempersingkat waktu. Dalam post ini saya akan membahas bagaimana cara melakukan integrasi antara Jenkins dengan Alibaba Cloud Container Registry. Tanpa pikir panjang, yuk kita lihat arsitekturnya :
Jadi kalau kita lihat dari arsitekturnya, ada beberapa tahapan yang harus kita siapkan, yaitu:
Untuk Prosesnya :
1. Cari "Container Registry"
2. Tekan tombol "Create Workspace"
3. Di sini saya menggunakan nama "testdockerrepo" untuk namespace
4. Pilih Tombol Repository
5. Pilih Create Repository
6. Di dalam pilihan ini bias memilih private atau public sesuai dengan kebutuhan.
7. Pilih "Local Repository" dikarenakan kita hanya ingin melakukan penyimpanan image secara local. Setelah itu kita bisa pilih "Create Repository"
Catatan : Jika ingin langsung menghubungkan antara Github, Bitbucket dan Private Gitlab dapat memilih pilihan tersebut.
8. Setelah pilih "Create Repository" kita akan lihat muncul seperti di bawah ini
9. Jangan lupa untuk menset password "container registry" di "access credential"
10. Setelah siap semua, kita bisa lakukan konfigurasi di Jenkins.
1. Setelah mempersiapkan semua di area Container Registry, maka perlu di sesi ini akan melakukan integrasi dengan credential dari github dan container
Masuk ke dalam Jenkins -> Credentials -> System
Kemudian pilih "Global Credentials"
2. Kita akan membuat 2 credentials yang di buat di Git dan Container Registry
3. Berikut contoh dari gitali dan container registry
4. Kita membuat 3 file yaitu Dockerfile, index.html dan Jenkinsfile
Kemudian untuk Github
5. Setelah kita buat semua credentials untuk github dan container registry maka kita bisa mulai dengan membuat file simple html (index.html):
<html>
<body>
<h1>TEST CICD</h1>
<p>Ini Tambahan 11:01</p>
<p>Ok 1111</p>
</body>
</html>
6. Setelah itu kita membuat Dockerfile, karena nanti di dalam Jenkins ini kita akan build docker image, sebagai contoh untuk Dockerfile sperti di bawah ini:
FROM centos:latest
MAINTAINER Eggy
RUN yum -y install httpd
COPY index.html /var/www/html/
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
EXPOSE 80
7. Untuk Jenkinsfile, akan seperti di bawah ini:
{
pipeline {
agent any
environment {
registryCredential = 'gitali'
registryCredentialAli = 'containerali'
registry = 'registry-intl-vpc.ap-southeast-5.aliyuncs.com/testdockerrepo/blogrepo'
registryUrl = 'https://registry-intl-vpc.ap-southeast-5.aliyuncs.com/testdockerrepo/blogrepo'
dockerImage = ''
}
options {
skipDefaultCheckout(true)
}
stages {
stage('Checkout SCM') {
steps {
echo '> Checking out the source control ...'
checkout scm
}
}
stage('List Git Files') {
steps {
echo '> List the File ...'
sh 'ls -l'
}
}
stage('Build') {
steps {
echo '> Build Image ...'
script {
dockerImage = docker.build registry + ":$BUILD_NUMBER"
}
}
}
stage('Deploy Image') {
steps{
script {
docker.withRegistry( registryUrl, registryCredentialAli) {
dockerImage.push()
}
}
}
}
stage('Remove Unused docker image') {
steps{
sh "docker rmi -f $registry:$BUILD_NUMBER"
}
}
}
}
8. Setelah kita siapkan semua file dan script, kita kembali ke portal Jenkins. Pilih "New Item"
9. Kemudian pilih pipeline, masukkan variable di "Enter an Item Name" Pilih "Ok"
10. Setelah selesai masuk ke pipeline yang sudah di buat, pilih "configure"
11. Pada blogtest pipeline, pilih tab "General"
Pada Repository URL pilih alamat url github
Pilih Credentials Github yang sudah di set sebelumnya
Tekan Simpan
12. Apabila telah selesai semua, bisa tekan tombol "Build Now" Apabila berhasil akan muncul "Stage View"
13. Untuk melihat hasil dari docker image yang dibuat bisa langsung ke container registry yang sudah di buat sebelum nya di dalam Alibaba Cloud Console.
Pilih "blogrepo" kemudian pilih "tags"
Di dalam page blog repo
14. Setelah ini selesai maka bisa di lakukan pengetesan di dalam kubernetes
Pastikan sudah membuat Kubernetes di Alibaba Cloud, contoh yang saya akan gunakan adalah Alibaba Cloud Kubernetes Managed Service.
1. Masuk ke dalam console Alibaba Cloud Kubernetes, pilih Deployments
2. Pilih Create From Image
3. Masukkan Nama Pod
Kemudian Click "Next"
4. Pilih Image Name dengan cara klik "Select Image"
5. Pilih Blog Repo
6. Masukkan Username Password Alibaba Cloud Container Registry
7. Click tombol "Create" pada baris services
Setelah selesai tekan tombol "Create" di pojok kanan bawah
8. Nanti akan muncul status seperti ini
9. Masuk ke dalam Services kemudian copy url tersebut dan paste di web browser
Demikian tutorial integrasi dari Jenkins dengan Alibaba Cloud Container Registry.
99 posts | 15 followers
FollowAlibaba Cloud_Academy - March 14, 2023
Alibaba Cloud Indonesia - August 22, 2022
Alibaba Clouder - February 21, 2020
Alibaba Container Service - July 24, 2024
Alibaba Cloud Indonesia - September 21, 2023
Regional Content Hub - November 11, 2024
99 posts | 15 followers
FollowAlibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.
Learn MoreElastic and secure virtual cloud servers to cater all your cloud hosting needs.
Learn MoreProvides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resources
Learn MoreA secure image hosting platform providing containerized image lifecycle management
Learn MoreMore Posts by Alibaba Cloud Indonesia