Привет, ребята!
Если вы хотите быстро развернуть новый проект Django с Docker, вот набор команд, которые вам помогут. Просто скопируйте и вставьте их в терминал, и у вас будет готовый проект.
# Создаем директорию для проекта и переходим в нее
mkdir my_django_project && cd my_django_project
# Создаем виртуальное окружение и активируем его (опционально)
python -m venv venv && source venv/bin/activate # Для Windows используйте `venv\Scripts\activate`
# Устанавливаем Django и Gunicorn
pip install django gunicorn
# Создаем новый проект Django
django-admin startproject mysite .
# Создаем Dockerfile
cat <<EOF > Dockerfile
# Dockerfile
FROM python:3.11
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем файлы проекта
COPY requirements.txt /app/
# Устанавливаем зависимости
RUN pip install --no-cache-dir -r requirements.txt
# Копируем код проекта
COPY . /app/
# Команда для запуска сервера
CMD ["gunicorn", "mysite.wsgi:application", "--bind", "0.0.0.0:8000"]
EOF
# Создаем файл с зависимостями
cat <<EOF > requirements.txt
Django>=4.0,<5.0
gunicorn
EOF
# Создаем файл docker-compose.yml
cat <<EOF > docker-compose.yml
version: '3.8'
services:
db:
image: postgres:13
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
web:
build: .
command: ["gunicorn", "mysite.wsgi:application", "--bind", "0.0.0.0:8000"]
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgres_data:
EOF
# (Опционально) Создаем файл .env
cat <<EOF > .env
POSTGRES_DB=mydatabase
POSTGRES_USER=myuser
POSTGRES_PASSWORD=mypassword
EOF
# Запускаем Docker-контейнеры
docker-compose up --build -d
# Ждем, пока контейнеры запустятся
sleep 10
# Выполняем миграции Django
docker-compose exec web python manage.py migrate
# Создаем суперпользователя Django
docker-compose exec web python manage.py createsuperuser
# Проверьте, что все работает, перейдите на http://localhost:8000
# Если нужно остановить контейнеры, используйте
# docker-compose down
Вот и всё! Если что-то не работает или возникнут вопросы, пишите. Удачи с проектом!
Написать комментарий