我正在尝试 Dockerize Django 项目,但运行容器时网页不会显示。但是,当我运行
docker compose up --build
时,我在终端中没有收到任何错误。我已在 Docker Desktop 上确认我的容器存在并正在运行。
我收到的错误是 ERR_ADDRESS_INVALID,表示无法访问该网站。
这是我的 Dockerfile 的样子:
FROM python:3
ENV PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y libpq-dev
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
我尝试将“0.0.0.0:8000”添加到 CMD,但这也不起作用。
这是我的 docker-compose.yml 文件:
version: "3"
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
最后这是我的requirements.txt 文件:
asgiref==3.6.0
Django==4.2.1
djangorestframework==3.14.0
psycopg2==2.9.6
pytz==2023.3
sqlparse==0.4.4
tzdata==2023.3
在网上和 YouTube 上查找问题后,我不确定问题是什么,因为看起来我已经拥有了我需要的一切。
您没有提供足够的信息来查看问题所在。
但请确保您遵循所有这些步骤:
检查容器日志:使用
docker logs
命令检查容器的日志并确保其正确启动
检查是否有防火墙阻挡该端口
ufw status
并允许该端口ufw allow 8000
检查 Django 设置:确保您的 Django 设置配置正确。具体来说,请检查您的 ALLOWED_HOSTS 设置是否包含您尝试访问应用程序的域或 IP 地址。如果启用了 HTTPS,您还应该检查 SSL 和安全设置。
您可以在此处找到 django 设置中的完整选项: https://docs.djangoproject.com/en/dev/ref/settings/
首先检查你的setting.py文件并设置ALLOWED_HOSTS = ['*']
您尝试在哪台机器上运行 docker 容器
a 如果您使用的是 ec2,请尝试:http://{ec2-ipaddress}:8000
b 如果您在使用 docker 的本地系统上,请尝试: http://{ip-address-of-local-machine}:8000
如果您尝试在 http://127.0.0.1:8000 -> 上运行它,它将无法工作。