Simple Flask Containerized

Simple Flask app containerized

Накратко, наложи ми се да пусна OpenShift с Flask приложение, което се оказа много добър учил. Реших да задълбая и да си направя свой контейнер работещ на моята машина с Flask microframework. 

Сценария е разигран върху Debian и Docker CE(текущо 18.06.1-ce). Пгорамата(app.py) е проста, отпечатва текст в уеб браузър.

Файл „app.py“ е със съдържание:

from flask import Flask
app = Flask(name)

@app.route('/')
def hello_world():
return 'Hello from Flask'
if name__ == '__main':
app.run(debug=True,host='0.0.0.0')

Ще ми трябва и файл requirements.txt, който е със съдържанието на нужните библиотеки за да сработи приложението. Тъй като стъпва на Flask, в него има само един ред – „Flask“

Всичко стъпва върху alpine(като най-малък image) и в него се инсталира python.

Dockerfile -a е със съдържание:

FROM alpine:latest
MAINTAINER Nikolay Nikolov "nikolay.nikolov@cnsys.bg"
RUN apk add --update \
python \
python-dev \
py-pip \
build-base
COPY . /app
WORKDIR /app
RUN pip install -r /app/requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]

И 3-те файла се намират в произволно създадена директория.

Правим Build/Run за тест

docker build -t flask-app:latest .

docker run -d -p 5000:5000 flask-app

В уеб на локалния адрес и порт 5000, ще се види работещо приложението.