7. Контейнеризируем приложение с помощью docker - Hoper/cicd-buzz GitHub Wiki

Docker поможет сделать из нашего приложения легко разворачиваемый контейнер. Для простой программки на Python и Flask это может показаться избыточным, но развертывание кода в виде контейнеров дает множество преимуществ, которые становятся очевидными по мере развития и роста проекта.

Если Docker у вас уже установлен, добавьте в корневую директорию проекта ‘Dockerfile’ с таким содержимым:

FROM alpine:3.5
RUN apk add --update python py-pip
COPY requirements.txt /src/requirements.txt
RUN pip install -r /src/requirements.txt
COPY app.py /src
COPY buzz /src/buzz
CMD python /src/app.py

Следуя этим инструкциям, docker возьмет базовый образ alpine, установит Python и pip, а также установит наше веб-приложение. Последняя строка инструктирует docker запускать веб-приложение при запуске контейнера.

Теперь Docker-образ должен без проблем собираться и запускаться:

[cicd-buzz] $ docker build -t cicd-buzz .
[cicd-buzz] $ docker run -p 5000:5000 --rm -it cicd-buzz

Резульаты

Опять же, не забудьте сделать коммит и отправить изменения на GitHub:

[cicd-buzz] $ git add Dockerfile
[cicd-buzz] $ git commmit -m "Step 6"
[cicd-buzz] $ git push