[英]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.