У цій статті ми розглянемо процес контейнеризації Python Flask додатку за допомогою Podman, надаючи покрокову інструкцію для тих, хто тільки починає цей процес.
Podman — це контейнерний рантайм, сумісний з OCI, який працює без демонів. Він розроблений так, щоб бути сумісним з Docker, що полегшує перехід між цими двома інструментами.
Podman є частиною RedHat Linux, але його також можна встановити на інших дистрибутивах. Майже всі популярні дистрибутиви Linux включають Podman у свої стандартні репозиторії.
У цьому прикладі я використовую WSL на Windows машині з Fedora Linux 38.
- Встановіть Podman, Python версії 3.11, pip3 і Flask фреймворк.
dnf install podman
dnf install python3.11
dnf install python3-pip
pip3 install flask
- Створіть Python програму ‘flaskapp.py’. Flask — це маленький і легкий Python веб-фреймворк, який надає корисні інструменти і можливості для полегшення створення веб-додатків.
vi flaskapp.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == "__main__":
app.run(host='0.0.0.0',port=5000,debug=True)
- Створіть текстовий файл ‘requirements.txt’, який міститиме всі елементи для встановлення через pip3, такі як бібліотеки, модулі та пакети, необхідні в проєкті. У цьому випадку це лише один пакет.
vi requirements.txt
Flask==3.1.0
- Створіть Dockerfile за допомогою команди:
vi Dockerfile
Dockerfile — це текстовий документ, який містить усі команди, які користувач може викликати на командному рядку для створення образу. Зміст буде таким:
FROM python:3.11-slim-buster
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["flaskapp.py"]
- Створіть обліковий запис в одному з популярних репозиторіїв образів, таких як quay.io від Red Hat, що є безпечним, приватним реєстром, який будує, сканує та обслуговує контейнерні образи в масштабах.
Увійдіть в свій обліковий запис і створіть репозиторій, в який буде завантажено образ. Після цього увійдіть в свій обліковий запис через CLI, використовуючи своє ім’я користувача та пароль.
podman login quay.io --verbose
- Створіть образ.
podman build -t quay.io/sd2590/testrepo1/flaskapp:latest .
- Завантажте образ у репозиторій.
podman push quay.io/sd2590/testrepo1/flaskapp:latest
Ось і все! Тепер ви можете витягнути образ і запустити контейнер.
podman pull quay.io/sd2590/testrepo1/flaskapp:latest
podman images
podman run -p 5000:5000 -d quay.io/sd2590/testrepo1/flaskapp
Перевірте, чи працює контейнер
Дякую за прочитання!
Перекладено з: Containerization of Python Flask app using Podman