POST для других API из док-контейнера с FAST API

У меня есть хост FAST API в контейнере докеров. Рабочий процесс этого API будет публиковать данные в другие API, которые «размещаются на другом сервере». И теперь FAST API может вызываться другой программой. Но он получит ошибку «Нет адреса, связанного с именем хоста», когда вызовет другой API, я думаю, что, возможно, что-то не так в файле докеров. Ниже приведены схема и файл докер-файла.

Докерфайл

FROM python:3.9

WORKDIR /code

COPY ./requirements.txt /code/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY ./app /code/app

WORKDIR /code/app

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

104
1

Ответ:

Решено

Потому что я запускаю свой докер с помощью Docker Desktop, установленного в ОС Windows. И я заметил, что в Windows нет файла /etc/resolv.conf. Так что, возможно, он не будет автоматически унаследовать настройки DNS хоста. И IP-адрес DNS-сервера отличается между Windows и Linux в нашей компании.

Поэтому я решил эту проблему двумя способами.

  • Разместите Docker на Linux-машине, не устанавливая DNS-IP.

  • Измените ip DNS-сервера.