Dockerrrrrrrrrrrrr
Background
Dalam membuat sebuah program, kita tidak hanya sekedar membuat program tersebut tetapi kita juga perlu memikirkan deploymentnya. Dalam melakukan deployment ini terdapat suatu masalah virtualisasi agar program dapat berjalan pada sistem operasi yang dimaksud. Bisa saja kita melakukan penyettingan server dan OS tetapi itu membutuhkan waktu yang sangat lama dan juga size yang sangat besar.
Docker si paus
Pada tahun 2013 Docker pertama kali dirilis, Docker adalah sebuah aplikasi yang berfungsi sebagai wadah/container untuk melakukan packing sebuah software secara lengkap beserta semua hal lainnya yang dibutuhkan oleh software tersebut dapat berfungsi, seperti library, OS, dan konfigurasi yang diperlukan. Pengaturan software ini akan menjadi sebuah Image (istilah yang diberikan oleh docker). Kemudian sebuah instan dari Image tersebut kemudian disebut Container. Setiap docker container, awalnya merupakan sebuah linux machine yang polos dan tidak tahu apa-apa. Dan selanjutnya, kita memberitahu container apa saja yang harus dilakukan dengan membuat dockerfile.
Dockerfile
“A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Using docker build users can create an automated build that executes several command-line instructions in succession.” — docs.docker.com
Dockerfile sendiri berisi banyak hal. Pertama-tama dockerfile berisi base image apa yang akan dipakai, base image ini berisi informasi containernya apa yang perlu di install pada container. Setelah itu port yang akan dijalankan, script apa yang mau dijalankan, environment variables beserta dependencies apa saja yg harus diinstall dan command apa yang ingin dijalankan
FROM node:8-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install --production
COPY --chown=node:node . .
EXPOSE 8001
CMD [ "node", "server.js" ]
Berikut adalah contoh dockerfile kami yang digunakan pada proyek ppl Customer Reminder for Repurchase
Berikut isi registry hasil Dockerfile pada portainer cs kami.
Mungkin cukup sekian pembahasan tentang docker ini, semoga dapat membantu teman teman sekalian memahami tentang docker ini. Sampai jumpa