Cara membuat docker container yang berisi aplikasi nodejs
Tutorial kali ini saya buat karena kebetulan saya sedang ingin belajar membuat nodejs dari awal, termasuk memulai dari pembuatan docker container. Untuk sumber-sumber referensi, saya sertakan di akhir postingan.
Ok langsung gitu, kita mulai tahapan yang saya buat ya (untuk catatan, saya sudah berhasil mencoba dan menjalankan)!
berikut adalah Spec dari teknologi yang saya gunakan:
- Docker. Docker adalah sebuah aplikasi yang bersifat open source yang berfungsi sebagai wadah/container untuk memasukkan sebuah software secara lengkap beserta semua hal lainnya yang dibutuhkan oleh software tersebut dapat berfungsi.
- Node.JS, pastikan nodejs & npm terinstall karena kita akan meng-install dependency menggunakan npm
- Ubuntu / OS sejenis
3. run : npm install{"name": "docker_web_app","version": "1.0.0",
"description": "Node.js on Docker",
"author": "First Last <first.last@example.com>",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.16.1"
}
}
4. buat file server.js yang akan menjadi main file nodejs kita, isinya:
'use strict';
const express = require('express');
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
// App
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
FROM node:12
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node", "server.js"
7. buat .dockerignore file, isi file2 yang mau kita ignore supaya tidak di proses di dalam image yang kita mau buat
node_modules
npm-debug.log
8. buat docker image di folder /nodeapp yang mengacu pada file dockerfile
docker build -t <your username>/node-web-app .
9. Buat container dengan menjalankan docker image
10. docker run -p 8100:8080 -d --name node-app albertto/node-app
11. Jalankan dan masuk ke docker dengan: docker exec -it <container id> /bin/bash
12. cek apakah container nya jalan: curl -i localhost:8100
Comments
Post a Comment