Cara Mendockerkan Aplikasi Flask

Pada tutorial docker kali ini, kita akan ‘mendockerkan’ aplikasi berbasis Flask. Flask sendiri adalah framework yang ditulis dalam bahasa Python.

Contoh aplikasi sederhana dalam Flask yang kita buat seperti ini:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello, World!'
if __name__ == "__main__":
    app.run(debug=True, host="127.0.0.1")

silakan ganti 127.0.0.1 dengan 0.0.0.0, karena 127.0.0.1 hanya bisa diakses dari dalam container docker saja, sedangkan 0.0.0.0 adalah loopback yang bisa diakses dari luar container.

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello, World!'
if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0")

buat list requirment untuk Python installer pip dengan nama file ‘requirement.txt’:

flask

dan taruh semua modul python yang dibutuhkan disana.

kemudian di dalam folder sourcecode, silakan bikin file Dockerfile:

FROM ubuntu:18.04
LABEL maintainer "[email protected]"
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT [ “python3” ]
CMD [ “main.py” ]

setelah itu build image docker-nya dengan perintah:

docker build -t python_flask .

dengan python_flask adalah nama image. tunggu sampai proses build image berhasil.

untuk ujicoba, silakan jalankan docker container dari basis image diatas:

docker run --name testing -p 5000:5000 -d python_flask:latest

dengan port 5000, nama kontainer ‘testing’ dan basis image ‘python_flask’ versi ‘latest’.

silakan dicoba akses ke alamat http://0.0.0.0:5000

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: