Yuk mari kita mulai dulu dengan mengerti tentang aplikasi.
Aplikasi
Aplikasi itu pasti memiliki fungsi, fungsi tertentu yang akan mempermudah kita sebagai user. Contoh Word editor kita pakai untuk mengetik, Power Point untuk membuat presentasi, Calculator untuk menghitung, dan lain lain.
Aplikasi butuh tempat untuk hidup. Kita bisa taro di hape kita, bisa taro di PC yang kita miliki, atau di server. Di artikel kali ini kita akan fokus pada aplikasi yang hidup di Computer atau Server.
Sebelum kita bisa menggunakan aplikasi, kita harus melakukan proses instalasi terlebih dahulu. Proses penginstallan aplikasi sendiri bisa bermacam macam, bisa cukup menghabiskan waktu, bisa juga sangat mudah dan simple.
3 hal yang sudah kita dapat ya gengz, bahwa :
- Aplikasi memiliki fungsi
- Aplikasi harus hidup di sebuah lingkungan (Computer/Server)
- Aplikasi butuh proses instalasi sebelum bisa digunakan

Install Aplikasi di Server
Mari kita coba ambil contoh aplikasi dibawah ini
https://github.com/ludesdeveloper/python-docker-example
git clone https://github.com/ludesdeveloper/python-docker-example.git

Bisa kita lihat bahwa aplikasi kecil ini memiliki 3 file, mari kita fokus ke 2 file saja dulu : main.py dan requirements.txt
Jika kita lihat isi dari main.py dibawah ini, anda akan tahu bahwa ini adalah file inti dari aplikasi yang kita miliki. Ini adalah fungsi yang bakal berjalan pada saat kita execute aplikasinya
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker!'
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=5000)
Jika kita lihat isi dari requirements.txt, anda akan tahu bahwa ini berisi dependensi atau library yang dibutuhkan untuk menjalankan aplikasi kita. Dan dependensi harus diinstall sebelum kita bisa menjalankan aplikasi kita
Flask==2.1.2
Untuk menjalankan aplikasi sederhana ini anda bisa :
- Menginstall Python terlebih dahulu
- Menginstall library dengan command “pip install -r requirements.txt”
- Menjalankan Python app dengan “python main.py”

Berhenti dan Memahami
Bila kita lihat sejenak apa yang kita telah kita lakukan untuk menginstall aplikasi di server, kita sadar bahwa semua itu adalah proses yang berurutan.
Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?
Jawaban simplenya adalah menyiapkan 10 server yang sama dengan melakukan proses yang berurutan di setiap server yang akan menjalankan aplikasi kita.
Container Datang dan Membantu
Nah disini container technology sangat membantu untuk menyelesaikan proses yang berurutan yang saya singgung sebelumnya
Gimana caranya? Yuk kita lihat file ke ketiga Dockerfile
1 FROM python:3.8-slim-buster
2 WORKDIR /app
3 COPY requirements.txt requirements.txt
4 RUN pip3 install -r requirements.txt
5 COPY . .
6 EXPOSE 5000
7 CMD [ "python", "main.py"]
Mari kita lihat baris ke 4 dulu ya gengz, disitu kita lihat ada command “pip3 install -r requiremets.txt”. Dan bila kita lihat ke sesi sebelumnya, kita juga melakukan hal yang sama yaitu melakukan instalasi terhadap dependensi / library yang dibutuhkan
Mari kita lihat juga di baris 7, disitu kita bisa lihat ada command “python main.py”. Dan bila kita lihat ke sesi sebelumnya, kita juga melakukan hal yang sama agar aplikasi tersebut berjalan
Dockerfile
Yang bisa kita coba pahami disini adalah bahwa Dockerfile itu memiliki semua instruksi yang berkaitan dengan proses yang berurutan agar aplikasi kita bisa berjalan
Container Image
Pastikan anda memiliki docker desktop atau docker enginer terinstall di PC anda, lakukan command dibawah ini
docker build -t python-docker-example .

Perhatikan baik baik gambar diatas, disini kita bisa melihat bahwa saat membuat image, docker mengeksekusi semua perintah yang ada di dalam Dockerfile, semua proses yang berurutan
Mari kita check image yang telah terbuat ya gengz
docker images

Kita sudah memiliki images dengan nama python-docker-example dengan tag latest
Menjalankan Container
Saat container image sudah ada, untuk menjalankan container kita hanya butuh 1 command lagi
docker run -d -p 5000:5000 python-docker-example:latest
docker ps -a

Container sudah jalan, dan bila anda membuka localhost:5000, anda akan bisa melihat hasilnya

Berhenti dan Memahami
Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?
Jawaban sudah mulai berbeda nih gengz, saat ini kita bisa menginstall docker run time di 10 server tersebut dan melakukan hal yang sama yang sudah kita lakukan
- Docker build
- Docker run
Container Registry
Mari kita stop dulu container yang sudah jalan (sesuaikan container id dengan yang anda telah miliki)
docker ps -a
docker stop 10e9b3247dac
docker ps -a
docker rm 10e9b3247dac
docker ps -a

Mari jalankan image yang sama, tapi saya sudah push ke Container Registry (DockerHub)
docker run -d -p 5000:5000 ludesdeveloper/python-docker-example:latest
docker ps -a

Wow, jauh lebih cepat kan prosesnya

Berhenti dan Memahami
Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?
- Docker run container image registry
Step yang kita butuhkan untuk menjalankan aplikasi menjadi sangat sedikit kan gengz, sebelumnya kita butuh melakukan semua proses berurutan secara manual, lalu hanya tinggal docker build dan run, sekarang kita hanya butuh menjalankannya.
Akhir Kata
Benefit yang diberikan container teknologi dalam packaging aplikasi sangatlah banyak, dan saya menyerahkan hal tersebut untuk anda gali sendiri, karena experience jauh lebih baik dari pada tutorial yang diberikan oleh orang lain. Semoga bermanfaat gengz.
Tinggalkan Balasan