![](/img/trans.png)
[英]Dockerized Django REST Framework / Postgresql - Disallowed host
[英]Dockerized Django REST Application and PostgreSQL DB
有什么方法不需要每次決定運行應用程序時都更改我的settings.py文件嗎? 我的意思是:
-每次我想使用docker運行dockerized應用程序時,請編寫我的settings.py文件,如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'agent_technologies_db',
'USER': 'stefan_radonjic',
'PASSWORD': 'cepajecar995',
'HOST': 'db',
'PORT': '',
}
}
-每次我想在本地計算機上運行應用程序時,settings.py都將如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'agent_technologies_db',
'USER': 'stefan_radonjic',
'PASSWORD': 'cepajecar995',
'HOST': 'localhost',
'PORT': '',
}
}
有沒有辦法解決?
這是我的docker-compose.yml文件的樣子:
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_USER=stefan_radonjic
- POSTGRES_PASSWORD=cepajecar995
- POSTGRES_DB=agent_technologies_db
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/agent-technologies
ports:
- "8000:8000"
links:
- db
depends_on:
- db
最簡單的方法:使用兩個單獨的設置文件。
在本地計算機上運行時,請使用settings.py
。
在Docker中運行時,請使用settings-docker.py
(或任何名稱),並將此文件作為settings.py
綁定到容器中。 這樣,您的容器內的應用程序將只看到預期的settings.py
文件。
只需像這樣修改您的docker-compose.yml文件(確保使用正確的路徑):
volumes:
- .:/agent-technologies
- settings-docker.py:/app/settings.py
我已通過遵循以下鏈接上提供的解決方案解決了該問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.