Представим типичную ситуацию: вам нужно запустить веб-приложение на Python с базой данных PostgreSQL. Решить эту задачу можно двумя способами — традиционным и с помощью Docker. Рассмотрим оба.
Путь №1: без Docker
Что получаем: потерю времени, нервов и денег. Развёртывание — это лотерея.
Путь №2: С Docker
Вся среда для приложения описывается в двух простых файлах:
Dockerfile: инструкция по сборке «коробки» с приложением
Путь №1: без Docker
- Разработчик настраивает Python и базу у себя, проверяет, пишет длинную инструкцию для админа, молится, чтобы ничего не забыть и передаёт админу.
- Админ пытается по инструкции воспроизвести окружение на сервере. Версии софта не совпадают, зависимости конфликтуют, приложение падает. Начинается мучительный поиск отличий между машиной разработчика и сервером.
Что получаем: потерю времени, нервов и денег. Развёртывание — это лотерея.
Путь №2: С Docker
Вся среда для приложения описывается в двух простых файлах:
Dockerfile: инструкция по сборке «коробки» с приложением
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run", "--host=0.0.0.0"]
docker-compose.yml: Файл для запуска «коробки» с приложением и базы данных вместе
services:
app:
build: .
ports: ["5000:5000"]
db:
image: postgres:13
environment: [POSTGRES_USER=user, POSTGRES_PASSWORD=password]
Разработчик на своем ноутбуке и админ на сервере выполняют одну команду:
docker-compose up
Что получаем: приложение гарантированно запускается в идентичном окружении где угодно. Никаких конфликтов и «у меня работало». Развёртывание занимает минуты, а не часы.
Это тот самый случай, когда «мне такое надо»!
Все нюансы работы с Docker – от основ до оркестрации и безопасности, рассказываем на курсе «Docker для админов и разработчиков». Стартуем 21 июля.
Познакомиться с программой и выбрать тариф — по ссылке.
docker-compose up
Что получаем: приложение гарантированно запускается в идентичном окружении где угодно. Никаких конфликтов и «у меня работало». Развёртывание занимает минуты, а не часы.
Это тот самый случай, когда «мне такое надо»!
Все нюансы работы с Docker – от основ до оркестрации и безопасности, рассказываем на курсе «Docker для админов и разработчиков». Стартуем 21 июля.
Познакомиться с программой и выбрать тариф — по ссылке.