我正在 windows/ubuntu 中的 docker 容器内开发 fastapi (代码如下)。当我通过在终端中运行python -m uvicorn app:app --reload测试容器外部的应用程序时,然后导航到127.0.0.1:8000/home一切正常:
{
Data: "Test"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我docker-compose up时,我既无法在容器中运行python -m uvicorn app:app --reload(由于端口已被使用),也无法在浏览器中看到任何返回的内容。我尝试过 127.0.0.1:8000/home、host.docker.internal:8000/home 和 localhost:8000/home 并且我总是收到:
{
detail: "Not Found"
}
Run Code Online (Sandbox Code Playgroud)
我缺少哪一步?
Dockerfile:
FROM python:3.8-slim
EXPOSE 8000
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
RUN adduser -u nnnn --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
CMD ["gunicorn", …Run Code Online (Sandbox Code Playgroud)