Quantcast
Channel: Wagiman Wiryosukiro – Blog Emka
Viewing all articles
Browse latest Browse all 4693

Cara Mendockerkan Aplikasi Flask

$
0
0

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 "dev@emka.web.id"
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


Viewing all articles
Browse latest Browse all 4693

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>