Docker adalah proyek sumber terbuka yang menyediakan platform terbuka bagi pengembang dan sysadmin untuk membangun, mengemas, dan menjalankan aplikasi di mana saja sebagai wadah yang ringan. Docker mengotomatiskan penerapan aplikasi di dalam wadah perangkat lunak.
Nodejs adalah lingkungan run-time JavaScript open source. Ini multi-platform run-time, dapat diinstal di Linux, Windows, MacOS, FreeBSD, dll. Nodejs sangat berguna untuk membangun aplikasi server dan desktop.
Dalam tutorial ini, saya akan menunjukkan cara membuat gambar buruh pelabuhan untuk proyek aplikasi Nodejs Express yang ada di Ubuntu 18.04. Kita akan belajar tentang meng-docker aplikasi Nodejs, dan kemudian menerapkan aplikasi sebagai container ke lingkungan buruh pelabuhan menggunakan skrip pembuatan buruh pelabuhan.
Prasyarat
- Ubuntu 18.04
- Hak istimewa root
Apa yang akan kami lakukan
- Instal Docker CE
- Instal Docker-Compose
- Siapkan Proyek Nodejs Express
- Bangun Proyek
- Pengujian
Langkah 1 - Instal Docker CE
Dalam tutorial ini, kita akan menginstal edisi komunitas docker-ce dari repositori docker. Kami akan menginstal docker-ce community edition dan docker-compose yang mendukung compose file versi 3.
Sebelum menginstal docker-ce, instal dependensi docker yang diperlukan menggunakan perintah apt.
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Sekarang tambahkan kunci buruh pelabuhan dan repositori dengan menjalankan perintah di bawah ini.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release - cs) \
stabil"
Instal paket docker-ce.
sudo apt install docker-ce
Setelah instalasi selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.
systemctl start docker
systemctl aktifkan docker
Selanjutnya, kami akan memberikan hak istimewa pengguna normal untuk menjalankan dan mengelola wadah buruh pelabuhan.
Tambahkan pengguna baru bernama 'mohammad' dan tambahkan ke grup buruh pelabuhan.
useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad
Sekarang login sebagai pengguna 'mohammad' dan jalankan docker container hello-world.
su - mohammad
docker run hello-world
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Langkah 2 - Instal Docker-Compose
Pada langkah ini, kita akan menginstal docker-compose secara manual dari file biner yang dapat diunduh dari GitHub. Kami akan menginstal versi docker-compose terbaru yang akan mendukung compose v3.
Unduh versi 1.22.0 docker-compose terbaru menggunakan perintah curl ke direktori '/usr/local/bin', lalu buat agar dapat dieksekusi menggunakan chmod.
Jalankan perintah di bawah ini.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local /bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Dan versi docker-compose terbaru telah diinstal, periksa dengan menjalankan perintah docker-compose di bawah ini.
versi penulisan buruh pelabuhan
Berikut adalah hasilnya.
Langkah 3 - Siapkan Proyek Nodejs Express
Di bagian ini, kita akan mengkonfigurasi lingkungan aplikasi Nodejs. Kami akan menggunakan aplikasi nodejs sederhana yang dapat dibuat menggunakan 'express-generator'.
Login ke pengguna 'mohammad'.
su - mohammad
Buat direktori baru bernama 'proyek' dan buka direktori tersebut.
mkdir -p proyek
proyek cd
Sekarang buat aplikasi nodejs hello-word sederhana menggunakan perintah 'express' di bawah ini.
aplikasi hakase ekspres
Catatan:
Pastikan paket nodejs, npm, dan 'express-generator' telah diinstal pada sistem.
Dan Anda akan mendapatkan aplikasi nodejs express sederhana di direktori 'hakase-app'.
Selanjutnya, kita akan membuat image buruh pelabuhan khusus untuk aplikasi nodejs 'hakase-app'.
Di bawah direktori 'project', buat 'Dockerfile' baru menggunakan vim.
vim Dockerfile
Tempelkan konfigurasi gambar buruh pelabuhan berikut di sana.
DARI node:8.11.4-alpineRUN mkdir -p /srcRUN npm install express-generator -gWORKDIR /srcADD hakase-app/package.json /src/package.jsonRUN npm installEXPOSE 3000CMD node hakase-app/bin/wwwSimpan dan keluar.
Kami sedang membuat image buruh pelabuhan kustom baru untuk aplikasi nodejs kami dengan spesifikasi di bawah ini.
- Gambar kustom didasarkan pada gambar nodejs resmi versi 8.11.4 alpine.
- Kami sedang membuat direktori baru untuk proyek kami '/src'.
- Pasang 'express-generator' ke gambar khusus.
- Tambahkan file 'package.json' yang berisi profil aplikasi dan paket yang diperlukan ke direktori '/src'.
- Instal semua paket nodejs yang diperlukan untuk proyek, berdasarkan file 'package.json'.
- Ekspor port 3000 dengan perintah start exec default 'node hakase-app/bin/www'.
Selanjutnya, kita akan membuat image kustom berdasarkan skrip docker-compose.
Buat file yml baru 'docker-compose.yml' menggunakan vim.
vim docker-compose.yml
Tempelkan konfigurasi berikut di sana.
versi:'3'services:hakase-app:build:. volume:- ./hakase-app:/src/hakase-app port:- "3000:3000" restart:selalu
Simpan dan keluar.
Kami sedang membuat layanan buruh pelabuhan baru bernama 'hakase-app', dan pada saat yang sama kami membangun gambar buruh pelabuhan kustom berdasarkan 'Dockerfile' pada direktori proyek dan akan me-mount secara otomatis file aplikasi hakase-app.
Penyiapan Nodejs Express telah selesai.
Langkah 4 - Bangun dan Jalankan Proyek
Masuk sebagai pengguna 'mohammad' dan buka direktori 'proyek'
su - mohammad
cd project/
Bangun image dan buat layanan buruh pelabuhan hakase-app menggunakan perintah docker-compose di bawah ini.
pembuatan docker-compose
Sekarang Anda akan mendapatkan hasil seperti gambar di bawah ini.
Dan setelah selesai, jalankan layanan buruh pelabuhan 'hakase-app'.
docker-compose up -d
Berikut adalah hasilnya.
Gambar buruh pelabuhan khusus untuk aplikasi Nodejs kita telah dibuat, dan layanan buruh pelabuhan hakase-app sudah aktif dan berjalan.
Langkah 5 - Pengujian
Tampilkan gambar buruh pelabuhan yang tersedia di server.
gambar komposisi buruh pelabuhan
gambar buruh pelabuhan
Gambar buruh pelabuhan kustom baru untuk aplikasi Nodejs kami telah dibuat.
Tampilkan layanan buruh pelabuhan yang sedang berjalan.
docker-compose ps
docker ps
Aplikasi Nodejs aktif dan berjalan pada port host 3000.
Buka browser web dan ketik alamat IP server dengan port.
http://10.0.15.2:3000/
Dan Anda akan mendapatkan halaman ekspres sederhana.
Aplikasi Dockerizing Nodejs Express di Ubuntu 18.04 telah berhasil diselesaikan.