Bulan lalu, Ghost merilis versi 0.11.9 yang membawa beberapa perbaikan. Seperti blogging platform pada umumnya, ketika terdapat versi baru, Ghost memberikan notifikasi kepada para penggunanya untuk menawarkan pembaruan versi. Ghost pun menyediakan panduan pembaruan yang bisa diakses di How to Upgrade Ghost.

Panduan tersebut berlaku untuk pengguna Ghost yang self-hosting, artinya mengelola instalasi Ghost di server sendiri. Singkatnya, langkah-langkah yang dilakukan kurang lebih melakukan backup, mengunduh berkas ZIP instalasi Ghost terbaru, ekstraksi dan penimpaan berkas-berkas lama oleh berkas-berkas baru, kemudian restart Ghost.

Namun, bagaimana jika instalasi Ghost yang kita miliki berada di dalam Docker? Tentu langkah-langkah pembaruannya berbeda (spoiler: lebih praktis!). Mari kita tengok.

Jangan Lupa Membuat Backup

Pertama-tama, meskipun langkah-langkah yang akan kita lakukan tidak menyentuh data dan berkas-berkas konten kita (yang di-mount dari direktori di luar Docker), ada baiknya kita melakukan backup.

Fasilitas backup yang ditawarkan Ghost cukup mengesankan. Dengan satu kali klik, Ghost akan mengompilasi seluruh isi dari blog kita ke dalam satu berkas JSON. Ya, semua. Mulai dari post, tags, pengaturan, code injection, dan seterusnya.

Fitur ini bisa Anda temukan di menu Labs pada halaman administrasi Ghost. Tinggal klik tombol Export lalu simpan berkas yang dikeluarkannya.

menu Labs pada Ghost

Mengganti Container Lama

Seperti yang sudah saya ulas di tulisan sebelumnya, seluruh program yang dibutuhkan untuk menjalankan Ghost terenkapsulasi di dalam container Docker. Container tersebut dibuat berdasarkan image yang -dalam kasus ini- kita ambil dari public repository Ghost.

Uniknya, untuk memperbarui versi Ghost kita, kita perlu mengambil image terbaru dari repositori tersebut, dan membuat container baru berdasarkan image tersebut.

Matikan container Ghost yang sedang berjalan terlebih dahulu.

$ docker ps # cek nama container terkait dan apakah statusnya sedang up
$ docker stop ghost

Setelah container tersebut dimatikan, kita bisa dengan aman menghapus container tersebut.

$ docker rm ghost

Sekarang, kita akan membuat container baru berdasarkan image Ghost termutakhir. Asumsikan kita melakukan instalasi Ghost berdasarkan tulisan saya sebelumnya, maka kita akan melakukan:

$ docker run --name blog -v /home/icalrn/ghost/content:/var/lib/ghost -p 80:2368 -e NODE_ENV=production -d ghost

Jangan lupa ganti masukan --name dan -p sesuai kebutuhan Anda, juga sesuaikan masukan volume mounting -v sesuai direktori tempat Anda menyimpan berkas-berkas konten Ghost Anda.

Jika semua berjalan lancar, maka Anda sudah bisa mengakses Ghost dengan versi terbaru pada domain Anda. Semua konten pun seharusnya ada pada tempatnya karena kita melakukan volume mounting. Jika data dan konten Anda hilang, Anda bisa mengembalikannya dari berkas backup yang sudah Anda simpan sebelumnya. Jika Ghost tidak berjalan, hapus container Ghost Anda kemudian lakukan instalasi bersih seperti yang sudah kita bahas sebelumnya. Semoga membantu!