簡體   English   中英

Docker-compose + Django + Postgresql

[英]Docker-compose + Django + Postgresql

我無法將我在 go 的模型中填寫的數據獲取到我的數據庫中。 當我進行遷移時,該項目在瀏覽器中運行,在本地主機上,但是當我在 postgres 數據庫中查看它時,什么都沒有出現。 我以自己進行遷移的方式制作了 docker-compose,但是仍然沒有任何反應。

docker-compose.yml

version: "3.9"
   
services:
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_ENGINE=${POSTGRES_ENGINE}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_HOST=${POSTGRES_HOST}
      - POSTGRES_PORT=${POSTGRES_PORT}
  web:
    build: .
    command: >
      sh -c "python manage.py makemigrations &&
             python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    environment:
      - POSTGRES_ENGINE=${POSTGRES_ENGINE}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_HOST=${POSTGRES_HOST}
      - POSTGRES_PORT=${POSTGRES_PORT}
    depends_on:
      - db

我已經嘗試了所有方法,我查看了幾個地方,但沒有任何東西使我將 go 遷移到我的數據庫。 有人能幫我嗎?

Dockerfile

FROM python:3.8

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

WORKDIR /code

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

設置.py

DATABASES = {
    'default': {
        'ENGINE': os.environ.get('POSTGRES_ENGINE'),
        'NAME': os.environ.get('POSTGRES_DB'),
        'USER': os.environ.get('POSTGRES_USER'),
        'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
        'HOST': os.environ.get('POSTGRES_HOST'),
        'PORT': os.environ.get('POSTGRES_PORT'),
    }
}

我設法找出問題所在。 我在 docker-compose 中指定了端口並將其放入 my.env 文件並分發到我的 docker-compose 和我的 django

關注我的 docker-compose.yml 中的更改:

version: "3.9"
   
services:
  db:
    image: postgres
    ports:
      - 5001:5432
    volumes:
      - ./data/db:/var/lib/postgresql/data
    env_file:
      - .env 
    
  web:
    build: .
    command: >
      sh -c "python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    env_file:
      - .env
    depends_on:
      - db

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM