на главнуюВсе эхи RU.PERL
войти ?

dancer2 & docker

От Sergey Zabolotny (2:469/122.1) к Gennadij Pastuhov

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Hello *Gennadij.*

Monday 04 July 2022 12:48, Gennadij Pastuhov wrote to Sergey Zabolotny:

GP>>> Кто-нибудь запускал сабж? Hе понимаю, как это сделать. Дока
GP>>> говорит запускать plackup с портом, но тогда он цепляется к
GP>>> интерфейсу 0.0.0.0 и порт наружу не пробрасывается.
SZ>> зачем его куда-то пробрасывать?

GP> Хочу ходить на него локально из браузера.
ну и ходи на локалхост из браузера, не вижу сложностей.

SZ>> в твоем случае у тебя порт должен быть
SZ>> доступен на любом айпи хоста где запущен докер и твой контейнер.

GP> Если проинспектировать запущенный докер, то, если обратиться на ип
GP> контейнера, то открытый порт видно. Hо я же не знаю этот ип, поэтому
GP> пытаюсь пробросить его на 80 порт локалхоста.
если ты про это
CMD ["plackup", "--host", "0.0.0.0", "--port", "5000"]

то это означает что твоя приложуха внутри контейнера будет слушать порт 5000 на любом айпи. а в контейнере он у тебя один, скорее всего. и знать тебе его совсем не обязательно.

SZ>> если тебе нужен доступ из интернета к контейнеру то тут имеет
SZ>> значение где у тебя запущен докер. если это хост который прямиком
SZ>> торчит в интернет то достаточно открыть входящие на нужный тебе
SZ>> порт. если же твой докер сидит за натом внутри сети то на нате
SZ>> надо сделать порт форвард на внутренний айпишник твоего докер
SZ>> хоста.

GP> Мне хотя бы локально ходить. Если запускал командой perl app/app.pl,
GP> то всё нормально пробрасывалось. Открыл доку по дансеру, там написано
GP> про plackup, а тот биндится на 0.0.0.0.

SZ>> дай ссылку на доку, по которой ты пытаешься его запускать.

GP> Hапример: https://perlmaven.com/counter-dancer2-redis-docker
если ты используешь докерфайл, который описан по этой ссылке то тебе надо сделать примерно так:
пишешь в Dockerfile прямо из доки

FROM perl:5.32

WORKDIR /opt
COPY cpanfile /opt/
RUN cpanm --installdeps --notest .

CMD ["plackup", "--host", "0.0.0.0", "--port", "5000"]

предварительно положив в текушую директорию cpanfile - не знаю, что это такое в контексте твоей задачи, но он там нужен судя по тому, что делается в докерфайле

собираешь свой контейнер командой: docker build -t dancer -f Dockerfile .

и запускаешь: docker run -p 80:5000 --name dancer-container -d dancer

теперь ты можешь из браузера зайти на http://127.0.0.1 и увидеть результат

вроде бы ничего не забыл...

--- GoldED+ 1.1.5-031023 (WinNT 5.1.2600-Service_Pack_3 i1586)
* Origin: [icq:122018120] [mailto:zabolotny[at]hotbox.ru] (2:469/122.1)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.PERL?msgid=2:469/122.1+62c365a1