Hugo in Docker
Mengatur Hugo untuk produksi dalam Docker melibatkan beberapa langkah:
- Membuat Dockerfile:
Buat file dengan namaDockerfiledi direktori root proyek Hugo Anda.
# Gunakan gambar resmi Hugo sebagai dasar
FROM klakegg/hugo:latest AS build
# Atur direktori kerja
WORKDIR /src
# Salin proyek Hugo Anda ke dalam gambar
COPY . .
# Bangun situs web dengan Hugo
RUN hugo
# Gunakan gambar Nginx sebagai server untuk situs web statis
FROM nginx:alpine
# Salin situs web yang dibangun ke dalam direktori root Nginx
COPY --from=build /src/public /usr/share/nginx/html
- Membangun Image Docker:
Dari direktori root proyek Anda, jalankan:
docker build -t nama_image_hugo .
Gantilah nama_image_hugo dengan nama yang Anda inginkan untuk image Docker Anda.
- Menjalankan Kontainer:
Setelah image selesai dibangun, Anda dapat menjalankannya dengan:
docker run --name nama_kontainer -d -p 8080:80 nama_image_hugo
Dengan perintah di atas, situs Anda akan tersedia di http://localhost:8080.
Optimalisasi (Opsional):
- Anda mungkin ingin menambahkan konfigurasi Nginx khusus atau memperbarui konfigurasi default untuk meningkatkan performa atau menangani kasus penggunaan khusus.
- Pertimbangkan untuk menambahkan fitur keamanan tambahan, seperti membatasi akses ke direktori tertentu atau menambahkan HTTP headers keamanan.
Penyebaran:
Setelah Anda puas dengan pengaturan Docker Anda, Anda dapat mendorong image Docker ke Docker Hub atau registry lainnya, dan kemudian menariknya ke server produksi Anda untuk penyebaran.
Itulah dasar-dasar pengaturan Hugo untuk produksi dalam Docker. Pastikan untuk menguji konfigurasi Anda di lingkungan yang mirip dengan produksi sebelum melakukan penyebaran ke server produksi.
Tentu saja! Untuk menggunakan docker-compose, Anda perlu membuat sebuah file bernama docker-compose.yml. Ini memungkinkan Anda untuk mendefinisikan dan menjalankan aplikasi multi-kontainer Docker dengan mudah.
Berikut adalah contoh file docker-compose.yml untuk aplikasi Hugo Anda:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
image: nama_image_hugo:latest
container_name: nama_kontainer_hugo
ports:
- "8080:80"
Penjelasan:
build: Menunjukkan lokasi Dockerfile dan konteks build.
context: Direktori saat ini (di manadocker-compose.ymlberada).dockerfile: Nama Dockerfile Anda.
image: Nama dan tag untuk image yang akan dibangun.
container_name: Nama yang Anda inginkan untuk kontainer yang berjalan.
ports: Memetakan port pada host ke port pada kontainer. Dalam contoh ini, port 8080 di host Anda akan diarahkan ke port 80 di kontainer (di mana Nginx berjalan).
Cara Menggunakan:
- Pastikan Anda berada di direktori yang sama dengan
docker-compose.ymldanDockerfile. - Jalankan
docker-compose up --builduntuk membangun dan menjalankan kontainer. - Buka browser Anda dan kunjungi
http://localhost:8080untuk melihat situs Anda.
Ketika Anda selesai, Anda bisa menggunakan docker-compose down untuk menghentikan dan menghapus kontainer. Jika Anda hanya ingin menghentikan kontainer tanpa menghapusnya, Anda bisa menggunakan docker-compose stop.