I need to run a FastAPI in Docker on the remote machine and make it accessible for curl requests from any machine. Container builds and uvicorn starts, but when I try to do a curl request I get connection errors. I’ve already specified host 0.0.0.0 in the parameters, but experimenting with different ports I’ve noticed that port param seems to be ignored on uvicorn start. Probably that happens to the host param as well. I don’t face this issue when running in the same way locally, at least I get Uvicorn running on http://0.0.0.0:some_port (Press CTRL+C to quit)
in local logs.
Dockerfile
ARG PYTHON_VERSION=3.11-slim-buster
FROM python:${PYTHON_VERSION} as python
WORKDIR /app
ADD . .
RUN pip install -r requirements.txt
CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8501"]
docker-compose.yml
version: '3.5'
services:
container-name:
container_name: container-name
build:
context: .
dockerfile: Dockerfile
env_file:
- ./env/demo.env
ports:
- "8501:8501"
docker compose down && docker-compose build –no-cache && docker compose up
...
container-name | INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
...
What could be a problem and what can I try to resolve it?