Рубрики
Без рубрики

Контейнер для бега Docker с оружием и колбами

В этом посте я покажу, как подавать простое приложение для во фланге с стрелком, бегая в докке … Помечено питоном, докке, колбором, стрелком.

В этом посте я покажу, как подавать простое приложение для колбы с надписей, бегая в контейнере Docker.

Давайте начнем с создания минимального применения в колбе:

from flask import Flask

app = Flask(__name__)


@app.route('/')
@app.route('/index')
def index():
    return 'Hello world!'

Далее, давайте напишем команду, которая запустит сервер буроинства:

#!/bin/sh

gunicorn --chdir app main:app -w 2 --threads 2 -b 0.0.0.0:8003

Параметры в значительной степени являются самоэкспланирующими: мы говорим о надзоре за 2 рабочих процессов, выполняя 2 потока в каждом. Мы также принимаем соединения извне и переоцениваем порт по умолчанию овиновника (8000).

Наш основной Dockerfile:

FROM python:3.7.3-slim

COPY requirements.txt /
RUN pip3 install -r /requirements.txt

COPY . /app
WORKDIR /app

ENTRYPOINT ["./gunicorn_starter.sh"]

Давайте построим наше изображение:

docker build -t flask/hello-world .

и беги:

docker run -p 8003:8003 flask/hello-world

Теперь мы должны быть в состоянии получить доступ к нашей конечной точке:

$ curl localhost:8003
Hello world!

Бонус – Makefile

Давайте создадим простое Makefile Это позволяет нам строить, запускать и убивать наше изображение/контейнер:

app_name = gunicorn_flask

build:
    @docker build -t $(app_name) .

run:
    docker run --detach -p 8003:8003 $(app_name)

kill:
    @echo 'Killing container...'
    @docker ps | grep $(app_name) | awk '{print $$1}' | xargs docker

Теперь мы должны быть в состоянии бежать:

# build Docker image
make build
# run the container
make run
# destroy it
make kill

Оригинал: “https://dev.to/marounmaroun/running-docker-container-with-gunicorn-and-flask-4ihg”