Evgeniy
для не фронтента нет готового примера но не будет отличаться от других скриптовых вещей
McLotos
это frontend ?
фронт вот FROM node:alpine as main ENV NODE_MODE=prod WORKDIR /var/www/html COPY package*.json ./ RUN npm install --silent --production=false RUN chmod 777 -R node_modules COPY ./ ./ FROM main VOLUME ["/var/www/html"] EXPOSE 3000 с ним такой проблемы вроде нет
Evgeniy
нет
я бы: 1. Монтировал папку с файлами в контейнер в /app 2. Внутри этой папки делал npm i 3. Потом бы npm run ... команда запуска сервера
Evgeniy
какая то жесть у вас я бы так не делал но дело вкуса конечно же
McLotos
какая то жесть у вас я бы так не делал но дело вкуса конечно же
почему? вроде всё работает, но только если создается volume для node_modules
Evgeniy
почему? вроде всё работает, но только если создается volume для node_modules
для фронта разработки достаточно в docker-compose указать image node:alpine workdir: /app и примонтировать текущую папку в /app контейнера задать в entrypoint команды npm i npm run dev (вместо dev имя команды с hotreload которая поднимает дев сервер) прокинуть порт контейнера на хост получается успех
McLotos
фронт-контейнер без этого volume (с node_modules) ругается, что не может найти vite, а остальные контейнеры ругаются кто на что, кто на apollo, кто на express это всё dev-режим, в production у меня вообще volume нет, они там не нужны, контейнеры общаются между собой без volume, а фронт к ним стучится через gql
McLotos
я выше почти написал пример из docker-compose.yml файлика для разработки
просто странно как-то показывать node_modules наружу, и еще более странно, что без этого контейнеры не могут установить зависимости
Solyar
Так не делают
McLotos
express это сервер логично что он без node modules не запустится
но я-то думал что он внутри контейнера его себе установит и запустится, а ему почему-то обязательно нужно чтобы node_modules торчала наружу, без этого express тупо не устанавливается (или устанавливается куда-то не туда)
Solyar
Проверь что package-lock содержит все пакеты что нужны
Evgeniy
просто странно как-то показывать node_modules наружу, и еще более странно, что без этого контейнеры не могут установить зависимости
у dev и prod обычно разные контейнеры сборка фронта отличается от сборки бэка это из моего опыта
McLotos
у dev и prod обычно разные контейнеры сборка фронта отличается от сборки бэка это из моего опыта
да, отдельные, для prod-контейнеров у меня вообще не создаются volume и набор портов у них совсем другой и env другие
Evgeniy
да, отдельные, для prod-контейнеров у меня вообще не создаются volume и набор портов у них совсем другой и env другие
насчет сборщика без разницы что у тебя там webpack, gulp и тд у webpack есть известная бага с виндой
Evgeniy
при чем здесь сборщик и винда?
я написал пример как я собираю фронт для разработки для vue/react приложух без докер образов и плясок с hotreload обычно в них сборщик webpack и чтобы hotreload заработал есть известный баг
Evgeniy
для другова фреймворка это все тоже подойдет
Evgeniy
вопрос лишь в том какой командой запускается dev server
Evgeniy
и на каком порту он висит
McLotos
я написал пример как я собираю фронт для разработки для vue/react приложух без докер образов и плясок с hotreload обычно в них сборщик webpack и чтобы hotreload заработал есть известный баг
тогда у тебя node установлена прямо на твоей системе? просто если я всё буду ставить на свою хост-систему, а я сегодня пишу на node, завтра на php, полезавтра на python, то моя ubuntu в какой-то момент пошлёт меня по известному адресу
Evgeniy
монтирую в него мою папку фронта запускаю в ней npm i npm run dev (эта команда должна запускать дев сервер, у тебя она может называться npm run serve например или по другому) эти команды запускаются внутри контейнера как entrypoint
Evgeniy
далее пробрасываю порт хостовой машины на порт контейнера чтобы я мог на хостовой машине по localhost:x обращаться и пробрасываться к онтейнер
Evgeniy
и все работает без плясок, такое крайне удобно в разработке на продакшене все естественно по другому это мы говорим за фронт, для бэка все будет очень похоже
Иван
Rumar
docker не видит декларации типов, что делать) проект работает
Rumar
Rumar
Rumar
Rumar
Evgenii Andreev
@keck5 Похоже что локальная версия typescript отличается от той что ты используешь в контейнере.
Rumar
@keck5 Похоже что локальная версия typescript отличается от той что ты используешь в контейнере.
декларации не видит, потому что нет папки , она же в контейнере
Rumar
Помогите плиз, выходит ошибка Error: Cannot find module '/usr/src/app/build/server/index.js'
Rumar
Rumar
Rumar
Ftfgh
подскажите что за ошибка? как исправить?
Ftfgh
Ftfgh
Dastan
дебажишь на 117 строчке, больше ничего не понятно
Иван
Всем привет! Есть у кого-нибудь рабочие примеры настройки 2 сайтов при помощи nginx-proxy/nginx-proxy и nginx-proxy/acme-companion?
Иван
уже не надо
Павел
Здравствуйте, я установил арч и на нем докер не запускается, просто пишется docker desktop starting... и все. На винде все нормально работает
Александр
Всем привет! Почему не проходят пост-запросы внутрь контейнера? Внутри докера приложение, которое принимает POST запрос с localhost:8080. Запускается через docker-compose. Порты проброшены: ports: - 8080:8080 Из вне запросы не проходят. Если из bash внутри контейнера посылаю запрос, то он проходит в приложение
Александр
И что она должна слушать, чтоб из вне достучались?
A
И что она должна слушать, чтоб из вне достучались?
Надо у неё спросить. Ну и firewall никто не отменял
Александр
Надо у неё спросить. Ну и firewall никто не отменял
Она мне полностью подконтрольна - что напишу, то и будет слушать
Александр
Ну так и повелите ей слушать 0.0.0.0
аналогичное поведение: отправленное внутри контейнера доходит, вне контейнера - нет
A
Она мне полностью подконтрольна - что напишу, то и будет слушать
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -m comment --comment "My slave app"
Roman
Есть проблема RateLimit. Интегрировал API которое потдержывает только 5 запросов в 1 сек. И часто я от них ловлю данную ошибку RateLimitError. На моей стороне есть несколько сервисов + cron которые дергают эту API Как можно решить даную проблему? В кукую сторону смотреть? Думаю чейчас написать Gateway чтобы все сервисы ходили на него сначала и там както делать проверку. Возможно можно сконфигурировать Nginx чтобы он принимал много запросов но выполнял толкьо 5 за 1 сек ?
gaenkov
Есть проблема RateLimit. Интегрировал API которое потдержывает только 5 запросов в 1 сек. И часто я от них ловлю данную ошибку RateLimitError. На моей стороне есть несколько сервисов + cron которые дергают эту API Как можно решить даную проблему? В кукую сторону смотреть? Думаю чейчас написать Gateway чтобы все сервисы ходили на него сначала и там както делать проверку. Возможно можно сконфигурировать Nginx чтобы он принимал много запросов но выполнял толкьо 5 за 1 сек ?
Ну и будут ваши сервисы ловить ошибку не от апи а от вашего гейтвея. Смысл? Я вижу ровно три решения: 1. Купить у вендора повышение лимита, если он такое позволяет. 2. Оптимизировать логику приложения, чтобы делать меньше запросов: батчинг, кеширование итд. 3. Сделать логику приложения толерантной к таким ошибкам: повторно отправлять запросы, корректно обрабатывать потенциально долгое состояние ожидания успешного ответа.
Дмитрий
Здравствуйте. Можете подсказать простейший dns сервер для докера с веб интерфейсом? Нужно как можно более простое решение в плане установки и настройки, чтобы через web ui указать нужные A записи.
Artyom
а как в коде , который будет запускаться в контейнере прописать полный путь?) что-то по типу такого ``` parser = Parser( file_path=f"${PWD}/street_retail_23.xlsx" ) ```
gaenkov
это первое что мы делаем. новыей сервис не будет отваливаться, он будет иметь счетчик запросов и пул и уметь ставить другие запросы в ожидание на несколько сек
Ок, сервис, который ставит запросы в очередь - легитимный вариант. Но я бы рассматривал это как меру последней надежды, когда других вариантов не остается. Проблемы: - (очевидно) необходимость разрабатывать, поддерживать и опереровать дополнительный сервис - два стула на выбор: на одном дополнительная точка отказа (упал сервис - отвалилась интеграция), на другом распределенная очередь со всеми прелестями distributed consensus, eventual consistency, итд
Rumar
docker-compose устарела? Вроде можно юзать просто docker compose
Evgeniy
docker-compose устарела? Вроде можно юзать просто docker compose
он ничем не лучше swarm а swarm есть из коробки
Max xbim 🌴
docker-compose устарела? Вроде можно юзать просто docker compose
Compose для одного сервера в swarm это прежде всего кластерное решение
Rumar
он ничем не лучше swarm а swarm есть из коробки
Я просто по устаревшим роликам смотрел
Rumar
Compose для одного сервера в swarm это прежде всего кластерное решение
Короче пакет docker-compose уже не надо устанавливать?
Max xbim 🌴
Короче пакет docker-compose уже не надо устанавливать?
Не надо, в последних версия docker он уже встроен
Rumar
Не надо, в последних версия docker он уже встроен
а как пушить контейнеры на впс со своей винды чтоб не руками?