Запуск приложения Django и PostgreSQL в Docker Compose
Запуск приложения Django и PostgreSQL в Docker Compose
Компоненты проекта
Dockerfile - файл зависимостей Python requirements.txt - файл зависмостей для использования в Dockerfile docker-compose.yml - файл описания служб сборки многоконтейнерного приложения
Создание файлов проекта
Создайте пустой каталог для проекта и перейдите в него:
mkdir -p /tmp/firstproj/data/db ; cd /tmp/firstproj
Создайте файлы ниже
Dockerfile:
FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
# базовый образ
# Python не будет пытаться писать файлы .pyc,
# эквивалент указания параметра интерпретатора -u
# рабочая директория
# файл зависимостей
# установка зависимостей
# копируем файлы проекта с локальной машины в контейнер
В файле описаны два сервиса db и web, которые создают приложение
Далее в конфигах контенеров эти имена можно использовать вместо ip
Сервисами являются веб-сервер и база данных
Описана взаимосвязь данных сервисов, их тома, порты, переменные
Тома нужны для сохранения результатов работы после остановки контейнеров
Порты описывают проброс порта с локальной машины в контейнер
В переменных мы указываем логин, пароль, бд
Создайте проект Django
В созданной директории создайте проект Django:
sudo docker-compose run web django-admin startproject composeexample .
Соберется контейнер web и запустится команда в нем django-admin startproject
Эта команда указывает Django создать стандартный набор файлов и каталогов
Подключение к базе данных
Насроим подключение Django к базе данных
Добавьте изменения в файл composeexample/settings.py:
import os
from pathlib import Path