compose
Catatan teknis seputar web development, DevOps, dan integrasi AI.
6 artikel
- 17.07devops
Docker Compose Menunggu Database Siap, Bukan Cuma Jalan
depends_on cuma menunggu container jalan. Healthcheck pg_isready plus service_healthy dan entrypoint yang benar membuat aplikasi tidak menabrak database yang belum siap.
TL;DR: depends_on di Compose cuma mastiin kontainer jalan, bukan beneran nunggu Postgres siap, makanya app sering gagal konek. Solusinya kasih healthcheck pg_isready di db terus depends_on pakai condition service_healthy, plus exec biar uvicorn jadi PID 1 dan shutdown rapi. Pola yang sama kepake di CI GitHub Actions, dan Compose 5.3.0 punya pre_start sebagai alternatif.
#docker#compose#postgresql - 21.40devops
502 dari Cloudflare Tunnel, ternyata cuma soal nama service
Tunnel bilang 502, semua kontainer hijau. Ternyata DNS jaringan compose cuma kenal nama service, dan alias enam baris langsung beres.
TL;DR: Docker nyala semua tapi URL publik malah 502 terus bikin bingung. Ternyata ingress tunnel nyari host proxy padahal nama service aslinya plane-proxy jadi nggak ketemu DNS. Akhirnya ditambahin alias proxy di compose biar nyambung lagi langsung 200.
#docker#compose#cloudflared - 20.58devops
Self-hosting Plane tanpa satu pun port publik
Cerita deploy Plane 13 service di VPS tunggal: cloudflared sidecar jadi satu-satunya pintu publik, state bind-mount, dan host tanpa port publik.
TL;DR: VPS gue udah sesak container, eh Plane malah maksa buka port 80 dan 443 lewat proxy defaultnya. Gue akalin dengan hapus semua ports, jalanin 13 service internal aja dan public-nya cuma lewat cloudflared tunnel ke proxy bukan port 8000. Enak banget firewall ketutup rapat cuma SSH, nggak usah ngurus certbot dan tetap jalan mulus di lokal.
#self-hosting#plane#docker - 11.15devops
Restart Bukan Deploy: Gerbang Pra-Restart Kontainer API
Gerbang restart: skrip kecil menolak restart kontainer API saat working tree masih kotor.
TL;DR: Penulis kaget skor dashboard jadi minus cuma gara-gara restart kontainer. Ternyata compose pakai bind mount, jadi restart malah menjalankan kode setengah jadi yang ada di disk, bukan dari image. Solusinya, skrip restart sekarang ngecek dulu kalau ansible/web bersih via git status, nolak jalan kalau masih kotor.
#docker#compose#bash - 22.21devops
Pindah ke docker compose v2: perbaikan yang telat tiga tahun
Skrip dev saya masih manggil docker-compose di sebelas tempat. Compose v1 ternyata udah EOL sejak Juni 2023, yang jalan di laptop cuma symlink ke v2.
TL;DR: Skrip dev kantor masih manggil docker-compose gaya lama, padahal Compose v1 udah nggak didukung sejak 2023. Laptop aman cuma karena symlink kompatibilitas Docker Desktop, tapi di CI bersih perintah itu bisa langsung mati. Fix-nya gampang banget: ganti strip jadi spasi jadi docker compose, selesai satu commit.
#docker#compose#devops - 22.23devops
WordPress Full vs View: Dua Repo Git, Dua Isu Berbeda
Satu WordPress, dua repo Git: repo full di Forgejo untuk pemulihan, repo view di GitHub hanya untuk sumber yang saya tulis sendiri.
#wordpress#git#github