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, ще се види работещо приложението.