Flask Academy · Урок

Написание производственного Dockerfile

Соберите компактный воспроизводимый образ контейнера.

Урок 3 из 413 шагов

«Написание производственного Dockerfile» — бесплатный урок Flask Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Why Containerize

A Docker image packs your code, Python, and every dependency into one unit that runs the same on any machine. No more works on my laptop. 🐳

The Dockerfile

A Dockerfile is a recipe. Each line is a step Docker runs to build your image, from base layer to final run command.

Pick a Slim Base

Start from an official python image. The slim variant keeps the image small while still giving you a working Python runtime.

FROM python:3.12-slim

Set a Working Directory

Use WORKDIR to choose where your code lives inside the image. Every later command runs relative to this folder.

WORKDIR /app

Copy Requirements First

Copy requirements.txt before your code. This lets Docker cache the install layer and skip it when only your code changes.

COPY requirements.txt .

Install Dependencies

Run pip install with no cache to keep the layer lean. This bakes Flask and Gunicorn right into the image.

RUN pip install --no-cache-dir -r requirements.txt

Copy the Rest of the Code

Now COPY the rest of your project in. Because it comes after the install, edits to your code do not bust the dependency cache.

COPY . .

Document the Port

Use EXPOSE to declare which port your app listens on. It is documentation plus a hint for tooling that wires things up.

EXPOSE 8000

Define the Start Command

The CMD line is what runs when the container starts. Point it at Gunicorn so the container boots straight into your server.

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "wsgi:app"]

Ignore the Junk

Add a .dockerignore file so caches, venvs, and git data never enter the image. Smaller builds are faster and safer.

__pycache__/
.venv/
.git/

Build and Run It

Build with docker build, then run the image and map a port. Your packaged Flask app is now portable to any host.

docker build -t myapp .
docker run -p 8000:8000 myapp

Quick Check

Why copy requirements.txt before the rest of your code?

Recap

Your Dockerfile builds from a slim base, installs deps, copies code, and launches Gunicorn. One image runs anywhere. Next: put Nginx in front. 🔧

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Написание производственного Dockerfile» бесплатный?

Да — полный текст урока «Написание производственного Dockerfile» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.

Чему я научусь в уроке «Написание производственного Dockerfile»?

Соберите компактный воспроизводимый образ контейнера. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Flask Academy?

Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Написание производственного Dockerfile»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Flask Academy?

Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему не стоит использовать встроенный сервер разработки
  2. Запуск Flask под Gunicorn
  3. Написание производственного Dockerfile
  4. Подключение Nginx и Compose
← Назад к Flask Academy