Это краткое руководство демонстрирует, как использовать Docker Compose для настройки и запуска простого приложения Django и PostgreSQL
Перед началом установки установите Docker Compose
Определить компоненты проекта
Для этого проекта вам нужно создать Dockerfile, файл зависимостей Python и файл docker-compose.yml
Вы можете использовать расширение .yml или .yaml для этого файла
1. Создайте пустой каталог проекта и каталог для бд, чтоб при перезагрузке данные сохранились:
mkdir -p /data/pd
mkdir -p /data/postgres_data
2. Создайте новый файл с именем Dockerfile в каталоге вашего проекта
touch /data/pd/Dockerfile
3. Добавьте следующее содержимое в Dockerfile:
cat > /data/pd/Dockerfile << EOF
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY require.txt /code/
RUN pip install -r require.txt
COPY . /code/
EOF
4. Создайте файл require.txt в каталоге вашего проекта
touch /data/pd/require.txt
5. Добавьте необходимое программное обеспечение в файл
cat > /data/pd/require.txt << EOF
Django>=2.0,<3.0
psycopg2>=2.7,<3.0
EOF
6. Создайте файл с именем docker-compose.yml в каталоге вашего проекта
cat > /data/pd/docker-compose.yml << EOF
version: '3'
Перейдите в корневой каталог вашего проекта
cd /data/pd/
Создайте проект Django, выполнив команду docker-compose run следующим образом
docker-compose run web django-admin startproject composeexample .
Это указывает Compose запустить django-admin startproject composeexample в контейнере
Используется образ и конфигурация web
Поскольку web образа еще не существует, Compose создает его из текущего каталога, как указано в docker-compose.yml
После создания образа web, Compose запустит его и выполнит команду startproject django-admin в контейнере
Эта команда указывает Django создать набор файлов и каталогов, представляющих проект Django
Получите:
WARNING:
Image for service web was built because it did not already exist.
To rebuild this image you must use `docker-compose build` or `docker-compose up --build`
Выполняем:
docker-compose build && docker-compose up -d
Эти настройки определяются образом Docker postgres, указанным в docker-compose.yml
Запустите команду docker-compose up из каталога вашего проекта:
docker-compose build
docker-compose up -d
Проверяем:
http://localhost:8000
The install worked successfully! Congratulations!
You are seeing this page because DEBUG=True is in your settings file and you have not configured any URLs.
Замечание:
На некоторых платформах (Windows 10) вам может понадобиться отредактировать ALLOWED_HOSTS в файле settings.py
Добавить имя хоста или IP-адрес Docker в список.
Для демонстрационных целей вы можете установить значение: ALLOWED_HOSTS = ['*']
Это значение не безопасно для производственного использования
Обратитесь к документации Django для получения дополнительной информации