>백엔드 개발 >파이썬 튜토리얼 >docker 및 django를 사용하여 postgres 연결

docker 및 django를 사용하여 postgres 연결

王林
王林원래의
2024-08-08 15:36:021362검색

Connect postgres with docker and django

PostgreSQL을 Docker 및 Django와 연결하려면 다음 단계를 따르세요.

  1. Docker 및 Docker Compose 설정:
    Docker와 Docker Compose가 컴퓨터에 설치되어 있는지 확인하세요.

  2. Docker Compose 파일 만들기:
    Django 및 PostgreSQL용 서비스를 정의하기 위해 docker-compose.yml 파일을 생성합니다.

version: '3.8'

services:
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    volumes:
      - postgres_data:/var/lib/postgresql/data

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

volumes:
  postgres_data:
  1. Django용 Dockerfile 만들기: Django 프로젝트 루트에 Dockerfile을 만듭니다.
# Use the official Python image from the Docker Hub
FROM python:3.9

# Set the working directory in the container
WORKDIR /code

# Copy the requirements file into the container
COPY requirements.txt /code/

# Install the dependencies
RUN pip install -r requirements.txt

# Copy the rest of the application code into the container
COPY . /code/
  1. PostgreSQL을 사용하도록 Django 구성: PostgreSQL을 사용하려면 Django 프로젝트에서 settings.py를 업데이트하세요.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'db',
        'PORT': '5432',
    }
}
  1. 종속성 설치: 요구사항.txt에 필요한 종속성이 포함되어 있는지 확인하세요.
Django>=3.2,<4.0
psycopg2-binary>=2.8,<3.0
  1. Docker Compose 실행: Docker Compose를 사용하여 컨테이너를 빌드하고 실행하세요.
docker-compose up --build
  1. 데이터베이스 마이그레이션: 컨테이너가 실행되면 마이그레이션을 적용하여 PostgreSQL 데이터베이스를 설정합니다.
docker-compose exec web python manage.py migrate
  1. 수퍼유저 생성(선택 사항): 관리자 패널에 액세스하려면 Django 슈퍼유저를 생성하세요.
docker-compose exec web python manage.py createsuperuser

이제 PostgreSQL 데이터베이스에 연결되어 작동하는 Django 애플리케이션이 있어야 하며 둘 다 Docker 컨테이너에서 실행됩니다. http://localhost:8000에서 애플리케이션에 액세스할 수 있습니다.

위 내용은 docker 및 django를 사용하여 postgres 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.