База данных Django не существует в контейнере postgreSQL?

Как я могу соединить контейнер базы данных postgreSQL с моим приложением django.

Как я могу создать базу данных в postgreSQL во время создания образа, но в случае, если у меня есть отдельный контейнер для postgreSQL и в этом случае Как я могу подключить мой postgreSQL.

Dockerfile

FROM ubuntu

ENV PATH="/scripts:${PATH}"

RUN apt update -y

RUN apt-get install debconf-utils

RUN apt install python3.8 -y

RUN apt install python3-pip -y

RUN echo 'tzdata tzdata/Areas select Asia' | debconf-set-selections
RUN echo 'tzdata tzdata/Zones/Asia select Kolkata' | debconf-set-selections
RUN DEBIAN_FRONTEND="noninteractive" apt install -y tzdata

RUN apt-get install -y gdal-bin
RUN apt-get install -y libgdal-dev

COPY ./requirements.txt /requirements.txt

RUN pip install -r requirements.txt

RUN mkdir /app

COPY ./app /app

WORKDIR /app

COPY ./scripts /scripts

RUN chmod +x /scripts/*

# RUN mkdir -p /vol/web/media

# RUN mkdir -p /vol/web/static
# RUN mkdir -p /vol/web/media
# RUN adduser --disabled-password user
# RUN chown -R user:user /vol
# RUN chmod -R 755 /vol/web

# USER user

CMD ["entrypoint.sh"]

docker-compose.yml

version: '3.8'

services: 
  app:
    build: 
      context: .
    environment: 
      - SECRET_KEY=changeme
      - ALLOWED_HOSTS=127.0.0.1,localhost
    
    depends_on: 
      - db

  db:
    image: postgres
    restart: always
    volumes: 
      - static_data:/static/db
    ports: 
      - 5432:5432
    container_name: ae73234b58e8
  
  proxy:
    build: 
      context: ./proxy
    volumes: 
      - static_data:/vol/static
    ports: 
      - 80:8080
    depends_on: 
      - app
  
volumes: 
  static_data:

Итак, здесь мне нужно создать базу данных, пока я создаю образ Dockerfile и Как я могу это сделать?

Вы можете добавить переменные окружения в db. Установите переменную окружения POSTGRES_DB с именем базы данных, которую вы используете в django. Она будет создана, как только postgres будет собран.

Вернуться на верх