Docker Image

Halloooo semuanya kembali lagi bersama saya. Pada tulisan kali ini kita akan mencoba membuat image yang simple ya. Oke yang pertama untuk membuat sebuah Docker image adalah Dockerfile yang berisikan kurang lebih seperti ini

FROM ubuntu

CMD echo "hello world"

Nah ini merupakan Docker image yang amat sangat simple, dia hanya cuman ngeprint tulisan hello world. Akan saya jelaskan image ini apa saja.

FROM: baris pada tulisan ini merupakan sebuah dasar dimana untuk membuat Docker image. Yang artinya line dengan tulisan FROM ini kita akan membuat image dengan base sistem nya apa. Ada banyak base yang di sediakan Docker kalian bisa lihat Docker hub.
CMD: Baris pada tulisan ini merupakan perintah untuk menjalankan sebuah service atau menjalankan Default commands.

Nah hanya satu yang bisa saya jelaskan kalau semua nanti kepanjangan jadi kalian bisa lihat referensi nya di link berikut: Dockerfile.

Oke untuk struktur atau isi dari Docker image seperti itu, kalian bisa explore sendiri dan memahami sendiri ya hehe. Oke selanjutnya disini saya ingin membuat sebuah Docker image yang simple.

membuat docker image

Docker image yang saya buat nantinya hanya nampilin tulisan “ini adalah image punya saya” yang nantinya tulisan ini akan berjalan. Oke untuk struktur docker file nya akan seperti ini.

my_docker_app/
├── app.py
├── Dockerfile
└── templates
    └── index.html

Saya akan membuat folder my_docker_app dan isinya nanti ada 2 file dan satu folder. 2 file ini merupakan file Dockerfile dan app.py. Untuk folder templates nantinya berisikan file html yang nampilin tulisan yang saya mau. File app.py ini untuk kita ngebuat web server dari flask.

Oke ke langkah nya, pertama kita buat folder my_docker_app dengan perintah berikut:

# mkdir my_docker_app

Selanjutnya kita akan membuat file app.py yang berisikan seperti berikut:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Oke lanjut kita akan membuat foder templates dengan perintah berikut:

# mkdir templates
# cd templates

Oke selanjutnya kita akan membuat file html nya dengan perintah seperti berikut dan isi file nya.

# vi index.html

isi file:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Moving Text</title>
    <style>
        @keyframes move {
            from {transform: translateX(0);}
            to {transform: translateX(100vw);}
        }
        .moving-text {
            position: absolute;
            width: 100%;
            text-align: center;
            font-size: 2em;
            animation: move 5s linear infinite;
        }
    </style>
</head>
<body>
    <div class="moving-text">ini adalah image punya saya</div>
</body>
</html>

Save dan exit, selanjutnya kita kembali ke folder sebelumnya dengan perintah:

# cd ..

Selanjutnya kita buat Dockerfile yang berisikan seperti berikut:

# menggunakan image official python 
FROM python:3.8-slim

# mengatur working Directory 
WORKDIR /app

# Copy folder working directory ke /app
COPY . /app

# Install package yang dibutuhin 
RUN pip install flask

# Ngepublish port 5000 ke luar 
EXPOSE 5000

# Menjalankan aplikasi pada saat container dibuat 
CMD ["python", "app.py"]

Oke jika sudah kalian jalankan perintah berikut untuk membuat docker image:

# docker build . -t simple/app

NOTE: jalankan perintah tersebut di dalam directory yang sama dengan Dockerfile

Oke jika sudah maka tunggu hingga selesai, kalian juga bisa ganti tag nya sesuka kalian. Nanti kalian akan dilihatkan proses nya bagaiman dan jika ada error akan terlihat seperti berikut:

Jika berhasil kalian bisa liat di docker image dan akan kita jalankan menggunakan perintah berikut:

# docker run -p 5000:5000 simple/app 

Nantinya jika sudah jalan, kalian bisa masuk ke web browser kalian dan akses dengan localhost atau ip dari server Docker nya. Menggunakan port 5000 karena kita publish port keluarnya 5000.

Nah sudah deh, simple bukan hehe. Jadi sampai situ saja semoga bermanfaat dan sampai jumpa pada tulisan selanjutnya bye bye


Leave a Reply

Your email address will not be published. Required fields are marked *