пишу на python\FastAPi и решил запустить докер , на локалке отрабатывает и работает , а вот если хочу зайти с другого устройства то мне выдает , что сайта нет. Вот код DockerFile & docker-compose
FROM python:latest
WORKDIR /src
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade -r requirements.txt
COPY ./app app
version: '2.24.6'
services:
app:
container_name: backend_python
build: ./
depends_on:
- db
command: "bash -c 'while !</dev/tcp/db_postgres/5432; do sleep 1; done; uvicorn app.main:app --host 0.0.0.0 --port 8000'"
volumes:
- ./app:/src/app
ports:
- ${APP_HOST_PORT}:8000
restart: always
env_file:
- .env
db:
container_name: db_postgres
image: postgres
environment:
- POSTGRES_DB=database
- POSTGRES_USER=${POSTGRES_DB_USER}
- POSTGRES_PASSWORD=${POSTGRES_DB_PASSWORD}
ports:
- ${POSTGRES_DB_HOST_PORT}:5432
volumes:
- .postgres:/var/lib/postgres/data
restart: always
вот что выдает сам контейнер при запуске
2024-04-04 16:18:27 INFO: 192.168.0.1:37968 - "GET / HTTP/1.1" 200 OK
2024-04-04 16:17:26 bash: connect: Connection refused
2024-04-04 16:17:26 bash: line 1: /dev/tcp/db_postgres/5432: Connection refused
2024-04-04 16:17:27 INFO: Started server process [1]
2024-04-04 16:17:27 INFO: Waiting for application startup.
2024-04-04 16:17:27 INFO: Application startup complete.
2024-04-04 16:17:27 INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
и самого python
from typing import Dict
from fastapi import FastAPI, Form
app = FastAPI()
# @app.post('/')
# async def main(Metadata: Dict[str, str] = Form(...)):
# pass
@app.get('/')
async def example():
return {"message": "Hello World"}
(просто написал проверку чтоб потом как заработает DOcker мог работать в штатном режиме)