Introduction
Saya bangun pagi kemudian sholat subuh berjamaah di mushola IDN. Disana kita tidak perlu memusingkan siapa yang akan jadi imam, karena disana sudah ada orang yang bertugas menjadi imam setiap hari. Mungkin karena IDN itu berawal dari pesantren, jadi untuk hal tersebut sudah ada yang menjalankannya.
Karena mulai training jam 9 pagi, saya sempatkan untuk mencari udara segar sambil mencari sarapan pagi. Mungkin karena baru pertamakali saya jalan-jalan di sekitaran IDN, saya menggunakan gmaps agar tidak tersesat melewati gang-gang kecil. Disana itu banyak gang-gang kecil, mungkin kalo pertamakali kesana naik motor pasti diarahin ke gang kecil tapi memang bisa dilintasi oleh motor. Saya jalan-jalan daerah situ sekitaran 3 KM dan memakan waktu kurang lebih 1 jam.
Setelah saya jalan pagi, kemudian saya sarapan bubur (dibungkus). Mungkin karena jakarta, tukang bubur saja sudah menggunakan Qris, mudah beli apapun kalau tidka membawa duit cash. Setelah sarapan, saya mau mandi, tapi harus antri dulu karena disana banyak yang menginap, mungkin itu lebih banyak siswa IDN.
Discussion
Untuk memulai training, kita review sedikit materi yang kita lakukan kemarin. Materi pertama yang dibahas yaitu penggunaan aplikasi nodejs. Karena kita sebagai team infrastruktur, maka aplikasi tersebut sudah jadi dan aplikasi tersebut untuk melakukan testing terhadap alur DevOps yang akan kita lakukan.
Sonarqube
Kita melakukan instalasi sonarqube yang fungsinya untuk scanning aplikasi nodejs tersebut. Sebenarnya untuk aplikasi scanning itu banyak, tapi untuk aplikasi yang opensource itu rekomendasi menggunakan sonarqube. Untuk kebutuhan sonarqube yaitu :
- Server
- Database
- Scanner
Berikut hasil scanning aplikasi menggunakan sonarqube.

Docker
Kita belajar container menggunakan docker. Docker sendiri itu paling mudah dipelajari dan sudah banyak tutorial yang tersebar. Kita disini belajar command docker terlebih dahulu. Berikut beberapa command yang kita pelajari
COMMAND | FUNCTION |
---|---|
docker info | show info about docker like ct, images, dll |
docker ps | show running ct |
docker ps -a | show all ct even with exited status |
docker pull {NAMEIMAGE} | pull images |
docker run -it ubuntu | create, start, and exec CT from image ubuntu |
docker start {NAMECT} | start CT |
docker stop {NAMECT} | stop CT |
docker rename {NAMECT} {NEWNAMECT} | rename CT |
docker run -dit –name {NAMECT} {NAMEIMAGE} | create, start, then detach with custom name |
docker run -dit –name {NAMECT} -p 8080:80 {NAMEIMAGE} | create, start, portforward, then detach with custom name |
docker exec -it {NAMECT} bash | enter the tty from active CT |
docker commit {NAMECT} {NEWIMAGES} | build images based on running CT |
docker rm -f {NAMECT} | remove ct with force (for active CT) |
docker rmi {NAMEIMAGES}:{TAG} | remove image with tag |
docker save -o {NAMEFILE} {NAMEIMAGES}:{TAG} | save images to local |
docker load -i {NAMEFILE} | load image from local |
docker tag {IMAGEID} {NAMEIMAGE}:{TAG} | change image and tag name (if the name and tag none) |
docker stats | check status of docker like cpus, rams, net i/o, etc |
docker system df | check usage size of docker like images, container, volumes, etc |
docker prune | remove unusage resource like images, ct, network, volume, and etc |
Jika tidak menggunakan TAG maka secara default akan menggunakan tag “latest”
Berikut screenshoot beberapa hal yang sudah saya testing untuk pengetesan docker command.

Setelah belajar command docker, kita melakukan build image menggunakan Dockerfile. Untuk referensi bisa lihat di dokumentasi resmi docker https://docs.docker.com/reference/dockerfile. Berikut contoh penulisan Dockerfile.
FROM node:18.20.8-alpine
WORKDIR /data
COPY . /data
RUN npm install
CMD npm start
Setelah membuat Dockerfile, kita melakukan build image menggunakan perintah dibawah ini.
docker build -t {NAMEIMAGE}:{TAG} .
Untuk NAMEIMAGE dan TAG kita bisa tentukan sendiri. Contohnya NAMEIMAGE menggunakan apps1 dan TAG menggunakan v1.0.
Untuk training dihari kedua cukup sampai disitu, kelihatannya sih sedikit yang dipelajari karena kita harus belajar docker dari awal jadi lama juga materinya.