Kebutuhan Software (pilih salah satu):
- Docker Desktop
- Podman Desktop
- Rancher Desktop
-
Menjalankan image postgresql official
-
Menggunakan podman
podman run -e POSTGRES_DB=belajar -e POSTGRES_USER=belajar -e POSTGRES_PASSWORD=docker -p 12345:5432 -v "/Users/endymuhardin/workspace/training/training-sre-junior-2025-02/belajar-container/db-belajar":"/var/lib/postgresql/data" postgres:17-alpine -
Menggunakan docker
docker run -e POSTGRES_DB=belajar -e POSTGRES_USER=belajar -e POSTGRES_PASSWORD=docker -p 12345:5432 -v "/Users/endymuhardin/workspace/training/training-sre-junior-2025-02/belajar-container/db-belajar":"/var/lib/postgresql/data" postgres:17-alpine
-
-
Connect ke running container
-
Menggunakan podman
podman exec -it <container_name_or_id> /bin/bash -
Menggunakan docker
docker exec -it <container_name_or_id> /bin/bash
-
-
Melihat isi database (setelah connect ke running container)
-
Login
psql -U belajar -d belajar -
Melihat daftar tabel/sequence
\d -
Melihat isi tabel
productselect * from product; -
Keluar dari shell postgres
\q
-
-
Buat file
compose.ymlberisi daftar container yang mau dijalankan -
Jalankan filenya
-
Dengan Podman
podman compose up -
Dengan Docker
docker compose up
-
-
Menjalankan compose di background (berguna jika kita ingin exit terminal setelahnya)
-
Dengan Podman
podman compose up -d -
Dengan Docker
docker compose up -d
-
-
Cek container yang berjalan untuk mendapatkan nama container
-
Dengan Podman
podman ps -a -
Dengan Docker
docker ps -a
-
-
Mematikan container yang berjalan di compose
-
Dengan Podman
podman compose down -
Dengan Docker
docker compose down
-
-
Matikan dulu podman/docker compose
podman compose downatau
docker compose down -
Hapus folder volume mapping database
rm -rf db-belajar -
Jalankan lagi podman/docker compose
-
Jalankan aplikasi spring boot
mvn clean spring-boot:run -
Cek hasilnya di http://localhost:8080/api/product
-
Buat
Dockerfile -
Jalankan command untuk build
podman build -t belajar-container .atau
docker build -t belajar-container .Jangan lupa titik di belakang, menunjukkan build context, yaitu folder saat ini (current folder)
-
Tag untuk upload ke repository
podman tag belajar-container docker.io/endymuhardin/belajar-containeratau
docker tag belajar-container endymuhardin/belajar-container -
Login ke DockerHub
podman loginatau
docker loginMasukkan username dan password akun di DockerHub
-
Upload image
podman push docker.io/endymuhardin/belajar-containeratau
docker push endymuhardin/belajar-container -
Build docker image untuk beberapa architecture (arm64 dan amd64) sekaligus
docker buildx build --platform linux/amd64,linux/arm64 --push -t endymuhardin/belajar-container .Catatan: versi podman terlalu ribet setupnya
Aplikasi ini bisa di-deploy ke Kubernetes menggunakan StatefulSet untuk database dan Deployment untuk aplikasi web.
Lihat dokumentasi lengkap di k8s/README.md yang mencakup:
- StatefulSet untuk PostgreSQL dengan headless service
- ConfigMap dan Secret management
- PersistentVolume dan PersistentVolumeClaim
- Service architecture dan request flow
- Scaling, troubleshooting, dan best practices
# Deploy semua resource
kubectl apply -f k8s/
# Cek status
kubectl get pods
kubectl get svc
# Akses aplikasi via port forward
kubectl port-forward service/app-belajar 10001:8080Akses aplikasi di http://localhost:10001/api/product
kubectl delete -f k8s/