Hugo in Docker

Mengatur Hugo untuk produksi dalam Docker melibatkan beberapa langkah:

  1. Membuat Dockerfile:
    Buat file dengan nama Dockerfile di 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
  1. 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.

  1. 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 mana docker-compose.yml berada).
  • 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:

  1. Pastikan Anda berada di direktori yang sama dengan docker-compose.yml dan Dockerfile.
  2. Jalankan docker-compose up --build untuk membangun dan menjalankan kontainer.
  3. Buka browser Anda dan kunjungi http://localhost:8080 untuk 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.