当我尝试执行以下命令时:
sudo docker-compose up
我的终端内出现以下错误:
这是我的docker文件的样子:
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /agent-technologies
WORKDIR /agent-technologies
COPY . /agent-technologies
RUN pip install -r requirements.txt
EXPOSE 8000
以下是我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
最后这里是我之前创建的PostgresSQL DB的设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'agent_technologies_db',
'USER': 'stefan_radonjic',
'PASSWORD': 'cepajecar995',
'HOST': 'db',
'PORT': '',
}
}
答案 0 :(得分:1)
您的django应用程序正在尝试连接到“localhost”数据库,但由于它位于自己的容器内,因此localhost无法访问数据库。
如果您将通过db容器名称引用,则Dockercompose会将您的名称查询解析为数据库。在你的情况下它是“db”
当图片上的文字读取时 - 您必须在设置模块中的ALLOWED_HOSTS
变量中添加“0.0.0.0”。
请务必仔细阅读django文档。它非常有活力。
答案 1 :(得分:1)
该错误非常自我解释..您没有在ALLOWED_HOSTS setting中设置您的IP。尝试将这些添加到您的设置文件中:
ALLOWED_HOSTS = ['*'] # wildcard, allows all
或者如果你想要明确:
ALLOWED_HOSTS = ['0.0.0.0'] # explicit