Точки входа, миграции и collectstatic
Запускайте начальные операции внутри контейнера
«Точки входа, миграции и collectstatic» — бесплатный урок Django Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Startup Steps Matter
Before serving traffic, a container often needs to run migrations and gather static files. Let's automate those startup steps. ⚙️
What an Entrypoint Is
An entrypoint is a script that runs every time the container starts, right before your main command takes over.
Write the Script
Create entrypoint.sh with a shebang line, so the container knows to run it with the shell.
#!/bin/sh
set -eApply Migrations on Boot
Run migrate inside the entrypoint, so your database schema is always current when the app starts.
python manage.py migrate --noinputGather Static Files
Run collectstatic to copy CSS and JS into one folder that your server can serve in production.
python manage.py collectstatic --noinputHand Off with exec
End the script with exec so your app becomes process 1 and receives stop signals cleanly.
exec "$@"Make It Executable
Set the script as executable in your Dockerfile so the container can actually run it on startup.
RUN chmod +x entrypoint.shWire It in the Dockerfile
Point ENTRYPOINT at your script, then keep CMD as the command it should run last.
ENTRYPOINT ["./entrypoint.sh"]
CMD ["gunicorn", "config.wsgi"]Why --noinput
The --noinput flag stops Django from pausing for prompts, which is essential for unattended container startups.
Wait for the Database
Postgres may boot slowly, so it helps to wait for the db port before migrating to avoid connection errors.
until nc -z db 5432; do sleep 1; doneWatch the Logs
Use docker compose logs to confirm migrations ran and static files were collected on startup.
docker compose logs -f webQuick Check
Why end an entrypoint script with exec on the main command?
Recap
Your entrypoint now runs migrate and collectstatic with --noinput, waits for the db, then execs the app as PID 1. Boot-ready every time. ✅
Часто задаваемые вопросы
Урок «Точки входа, миграции и collectstatic» бесплатный?
Да — полный текст урока «Точки входа, миграции и collectstatic» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.
Чему я научусь в уроке «Точки входа, миграции и collectstatic»?
Запускайте начальные операции внутри контейнера Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Django Academy?
Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Точки входа, миграции и collectstatic»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Django Academy?
Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Написание Dockerfile для Django
- docker-compose с Postgres и Redis
- Точки входа, миграции и collectstatic
- Рекомендации для образов рабочего окружения