Контейнер Docker слушает только IPv6

Я пытаюсь настроить тестовый экземпляр Discourse в виртуальной машине, чтобы поработать над импортом данных из другого программного обеспечения. Я новичок в Docker, Discourse и Ruby, поэтому пока не до конца понимаю, что происходит «под капотом». На данный момент я форкнул репозиторий discourse_docker и следовал инструкциям по ссылке (используя свою локальную виртуальную машину на Ubuntu вместо облачного сервера): discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

После настройки, согласно данным netstat, похоже, что контейнер в моей локальной виртуальной машине настроен так, что порты 80 и 443 прослушиваются только по IPv6-адресу. Я не использую IPv6 локально, поэтому не могу получить доступ к экземпляру Discourse. Как это исправить? Я посмотрел в файл app.yml, но там, похоже, нет никаких настроек привязки (bind). Я искал похожие проблемы — нашел один результат, вероятно, от 2015 года, где решением было изменить конфигурацию DNS внутри самого контейнера. Это звучит как плохая идея (Bad Idea™), поэтому я надеюсь на что-то менее «костыльное».

Спасибо!

Скорее всего, вам не нужно делать форк репозитория.

Проблема, вероятно, в вашем виртуальном хосте. Я такого раньше не встречал.

Я форкнул репозиторий, пытаясь следовать этой инструкции:

Хотя я не думаю, что это должно вызвать какие-либо проблемы.
Я запускаю свежую установку Ubuntu Server (скачанную с ubuntu.com) на ESXi. Всё это стандартные вещи.

Где именно в конфигурации определяется способ привязки служб?

По умолчанию оно привязывается ко всем IP-адресам.

Вы можете добавить IP-адреса в строки, сопоставляющие порты, но, скорее всего, проблема в виртуальной машине. Это DigitalOcean?

Здесь есть примеры запуска импорта в контейнере. Они, вероятно, лучше, чем тот, на который вы сослались (но я его не смотрел, так что могу ошибаться).

Нет, у меня есть свой хост VMware, на котором я запускаю виртуальную машину. У меня тоже нет проблем с доступом к виртуальной машине по IPv4 ни напрямую, ни через DNS-имя. Просто по какой-то причине службы Docker (не стандартные вещи, такие как SSH-сервер) привязываются только к :::80 и :::443 вместо 0.0.0.0.

Есть ли где-нибудь соответствующий файл журнала, который мог бы предоставить некоторые детали?

Здесь есть примеры запуска импорта в контейнере. Они, вероятно, лучше, чем тот, на который вы ссылаетесь (но я не смотрел его, так что могу ошибаться).

Что ж, пока я ещё не дошёл до части импорта. :stuck_out_tongue:
В конечном итоге я хотел бы поработать над улучшением этого скрипта импорта для нашего сайта. До сих пор я испытывал трудности с несколькими различными руководствами по началу работы, но решил, что пока лучше всего подойдёт простая установка без лишних настроек.

Проблема, скорее всего, в Docker или вашей виртуальной машине. Рекомендую изучить руководства по виртуальным машинам и Docker, начав с простого контейнера «Hello World». Это не проблема самого Discourse.