Docker Wkhtmltopdf HostNotFoundError

Когда я пытаюсь запустить wkhtmltopdf (v 0.12.5) внутри контейнера докеров (который отлично работает, если я пытаюсь создать PDF-файл из внешнего URL-адреса (http://google.de), я получаю эту ошибку:

wkhtmltopdf http://app.local/web/app_dev.php/get/media media.pdf Loading pages (1/6) Error: Failed to load http://app.local/web/app_dev.php/get/media, with network status code 3 and http status code 0 - Host app.local not found Error: Failed loading page http://app.local/web/app_dev.php/get/media (sometimes it will work just to ignore this error with --load-error-handling ignore) Exit with code 1 due to network error: HostNotFoundError

Я предполагаю, что проблема в том, что сам контейнер не знает о записи /etc/hosts, которую я добавил на свой локальный компьютер.

127.0.0.1 app.local

Я запутался и застрял, потому что я не знаю, как это решить. Я использую symfony, но это не имеет особого значения, так как я получаю сообщение об ошибке выше, когда использую его внутри самого контейнера с помощью docker exec -it bash. Запуск скрипта без докера работает нормально.

Может ли кто-нибудь дать мне решение или подсказку, как заставить это работать?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
1 640
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добавить хост в контейнеры /etc/hosts с помощью --add-host, см. это.

Что-то типа:

$ docker run -it --add-host db-static:86.75.30.9 ubuntu cat /etc/hosts
172.17.0.22     09d03f76bf2c
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
86.75.30.9      db-static

Хорошо, это хороший намек. Я забыл рассказать вам об использовании docker-compose и dockerfile. Но вы указали мне правильный путь, поэтому я нашел docs.docker.com/compose/compose-file/#extra_hosts, что я и собирался сделать :)

TheTom 18.06.2019 14:46

Другие вопросы по теме