본문 바로가기

기타-프로그래밍

PostgreSQL Docker 적용하기

반응형

1. docker-compose.yml 파일에 postgresql 관련 내용을 작성한다.

depends_on:
      - db
  db:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=do_it_db_user
      - POSTGRES_PASSWORD=do_it_db_password
      - POSTGRES_DB=do_it_dev
volumes:
  postgres_data:

2. settings.py 파일에 db 관련 내용을 작성한다.

DATABASES = {
    'default': {
        'ENGINE': os.environ.get("SQL_ENGINE", 'django.db.backends.sqlite3'),
        'NAME': os.environ.get('SQL_DATABASE', os.path.join(BASE_DIR, 'db.sqlite3')),
        'USER': os.environ.get('SQL_USER', 'user'),
        'PASSWORD': os.environ.get('SQL_PASSWORD', 'password'),
        'HOST': os.environ.get('SQL_HOST', 'localhost'),
        'PORT': os.environ.get("SQL_PORT", '5432'),
    }
}

3. .env.dev 파일에 db 관련 내용을 작성한다.

SQL_ENGINE = django.db.backends.postgresql
SQL_DATABASE = do_it_dev
SQL_USER = do_it_db_user
SQL_PASSWORD = do_it_db_password
SQL_HOST = db
SQL_PORT = 5432

4. docker-compose build하고 docker-compose up으로 실행한다.

5. 실행 시 psycopg2 모듈이 없다고 나오면 pip install psycopg2-binary를 실행하여 모듈을 설치한다.

6. 설치 후 docker 이미지 반영을 위해 pip freeze > requirements.txt를 실행한다.

7. docker-compose exec web python manage.py migrate 명령으로 db정보를 migration 한다

8. docker-compose exec web python manage.py createsuperuser 명령으로 컨테이너에 관리자를 만든다.

 

반응형