Cara Deploy Static Website HTML di Docker
Pada seri tutorial Docker kali ini kita akan belajar bagaimana cara deploy static website HTML di atas Docker container.
Requirements
Jika Docker belum tersedia, install terlebih dahulu.
Baca tutorial install Docker di Ubuntu 20.04.
Tutorial install di distro Linux lain baca di docs.docker.com.
Kita membutuhkan nginx image. Pull nginx image dengan tag stable-alpine karena ukurannya lebih kecil.
1 | docker pull nginx:stable-alpine |
Cara Pertama: Copy File
Cara pertama kita bisa membuat container nginx dan meng-copy file website HTML ke dalam container.
Membuat container dengan nama web-freelancer dari nginx image dan port nginx di-publish ke port 80.
1 | docker run -d -p 80:80 --name web-freelancer nginx:stable-alpine |
Cek apakah container sudah berjalan.
1 | docker ps |
Contoh hasil perintah di atas.
1 2 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 60229e04a7b3 nginx:stable-alpine "/docker-entrypoint.…" 13 seconds ago Up 12 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web-freelancer |
Tes apakah nginx di container sudah bisa diakses.
Browse http://127.0.0.1, http://ipserver, atau http://domain.com (Domain harus sudah diarahkan ke IP server).
Copy file website ke dalam container. Diasumsikan file website tersimpan di dalam folder ~/freelancer.
Copy isi folder freelancer ke /usr/share/nginx/html yang berada di dalam container.
1 | docker cp ~/freelancer/. web-freelancer:/usr/share/nginx/html |
Browse kembali untuk mengetahui apakah file website sudah ter-copy dengan baik.
Cara Kedua: Mount Folder
Cara kedua tanpa copy file tapi dengan mount folder website.
Membuat container dengan nama web-freelancer dari nginx image, port nginx di-publish ke port 80, dan mount folder ~/freelancer ke /usr/share/nginx/html yang berada di dalam container.
1 | docker run -d -p 80:80 -v ~/freelancer:/usr/share/nginx/html --name web-freelancer nginx:stable-alpine |
Cara Ketiga: Volume
Cara ketiga dengan membuat volume dan mount ke container.
Membuat volume dengan nama vol-freelancer.
1 | docker volume create vol-freelancer |
Copy isi folder freelancer ke folder volume vol-freelancer di /var/lib/docker/volumes/vol-freelancer/_data/.
1 | cp -Rv freelancer/* /var/lib/docker/volumes/vol-freelancer/_data/ |
Membuat container dengan nama web-freelancer dari nginx image, port nginx di-publish ke port 80, dan mount volume vol-freelancer ke /usr/share/nginx/html yang berada di dalam container.
1 | docker run -d -p 80:80 -v vol-freelancer:/usr/share/nginx/html --name web-freelancer nginx:stable-alpine |
Selamat mencoba 🙂
Permisi mas, izin bertanya. Itu di bagian “browse dengan domain”. Cara mengarahkan Domain ke server nya itu gimana ya mas?
buat A record di DNS, masukkan IP server
permisi mas mau tanya, untuk file freelancer beserta datanya itu dapat darimana ya?
theme freelancer dari startbootstrap
permisi mas mau tanya bagaimana jika kita ingin mendeploy website yang kita punya sendiri di local ke docker dan bagaimana konfigurasinya jika website saya memiliki database ??
terimakasih 🙂
coba googling dengan keyword “container bhs-prog db-engine webserver”, memerlukan docker compose