Alex
ну я делаю docker run -d, или процесс внутри как демон?
Alex
это нормальная практика?
Alex
приложение, как демон внетри контейнера? ( я хочу разобраться, камнями не метать )
Solyar
ну я делаю docker run -d, или процесс внутри как демон?
docker run -d говорит докеру что этот контейнер работает как демон. В действительности приложение внутри работает как обычное приложение (пока не умрет), докер своими силами перезапустит контейнер
Solyar
Разве?
Solyar
Прошу прощения, перепутал :) Только в беке запустит
Артем
Артем
Прошу прощения) у меня проблема с докером поставил на него постгре сбилдил а он не запускаеться кто подскажет что нетак)
Vadim
Логи смотри
Vadim
Говорит же что psycopg не хватает, не все зависимости значит поставил
Артем
так я поставил его
Vadim
Ты голый образ пг берешь в этот контейнер прокидываешь свой проект, откуда в голом образе с пг psycopg?
Артем
Артем
вот еще раз поставил
Vadim
Так это ты его себе локально на машину поставил
Артем
вроде нет а как надо?
Vadim
Сделай отдельный образ со своим приложением со всеми зависимостями и т.д. и отдельный образ с базой и линкуй их потом
Artem
Я в Makefile прописал bootstrap: docker-compose build
Artem
запускаю make bootstrap
Artem
make: Цель «bootstrap» не требует выполнения команд.
Artem
получаю
Artem
make: Цель «bootstrap» не требует выполнения команд.
Artem
В чем проблема
Artem
?
George
Я в Makefile прописал bootstrap: docker-compose build
научись команды шелла в мейке писать
George
там был синтаксис с собачкой если мне память не изменяет
George
плюс есть нюанс - откуда у тебя мейк узнает, что цель изменилась и требует сборки ?
Вадим
всем привет! не пойму как в nginx посылать людей на.... web-service в swarm - я же не знаю ip нод на которых будут запущены реплики! там нужно перечислить все ноды и указать определенный порт?
George
тебе сворм сам по себе должен предоставить вирт адрес + порт
George
либо если это не так - можешь попробовать засунуть в энжинкс все ноды сворма как апстримы и он уже сам распедалит где твой сервис будет жить
Вадим
тебе сворм сам по себе должен предоставить вирт адрес + порт
а где и как? я описал веб-сервис, указал ему количество реплик - 3 (а нод 4) и порт - сворм создал на 3х узлах по реплике и один узел остался без реплики если я укажу все ноды - nginx пошлет людей на 4ю ноду и людям таки будет неприятно! )
George
энжинкс сам выкидывает из балансировки (СВОЕЙ!) не живые апстримы
Вадим
энжинкс сам выкидывает из балансировки (СВОЕЙ!) не живые апстримы
он забанит мне 4й узел, а на каком-то из узлов умрет реплика и сворм решит ее создать на 4м но nginx уже его забанил!
Вадим
нашел решение - https://github.com/jwilder/nginx-proxy/blob/master/README.md
George
он забанит мне 4й узел, а на каком-то из узлов умрет реплика и сворм решит ее создать на 4м но nginx уже его забанил!
Чел, энжинкс умеет это проверять. Т.е. он бекенды выкидывает не на совсем. Но факт, что это нужно уметь готовить - да. А то можно откровенно пострелять по ногам
Minor
Подскажите как исправить psql: FATAL: role "root" does not exist Контейнер запускает норм но psql не работает.
George
ну регайся под тем юзером, под которым создавал БД (в переменных среды смотри)
Вадим
энжинкс сам выкидывает из балансировки (СВОЕЙ!) не живые апстримы
или таки в nginx обращаться к upstreams как <имя_сервиса>:<порт> ? внутри сворма я так понимаю имена сервисов ресолвятся в DNS?
George
_внутри_, но не снаружи
Вадим
_внутри_, но не снаружи
так nginx и сераис web находятся же внутри?
George
смотря как задеплоишь
George
поясню
George
у тебя сам по себе сворм - он не обеспечивает отказоустойчивость точки входа
George
тебе ее нужно либо тащить на уровне инфраструктуры (кипэлайв? пейсмейкер?), либо на уровне провайдера (балансировщик, флоатинг айпи и еще что), либо тупо фигачить все ноды сворма в днс
George
чудес не бывает
Вадим
у тебя сам по себе сворм - он не обеспечивает отказоустойчивость точки входа
а кстати нигде еще не нашел описания как сворм ведет себя если упал мастер - выбирают автоматом другого?
Артем
Артем
Помогите) делаю миграцию в докере и такое
George
скорее всего, мне это было не особо интересно )
George
Помогите) делаю миграцию в докере и такое
он четко выругался - днс запись db отсутствует - например, потому что ты не поднял контейнер с БД, или он упал, или что еще
Артем
ох
Артем
все по гайду делаю как до постгре добрался все падает
Вадим
скорее всего, мне это было не особо интересно )
как же не интересно? это же должно быть самым интересным! ))
Артем
George
кубернетес решает проблемы
George
Вадим
кубернетес решает проблемы
блин но нам он пока - не по Сеньке шапка - у нас не такого масштаба приложение чтоб в кубер перейти - тут еще сварм не осилили)
George
там многие вещи более продуманны кмк
Вадим
а на сколько сложнее вхождение по сравнению со свормом?
Вадим
На 14
лет? )
Dan
лет? )
Литров
Вадим
Литров
если литров - то осилим )
Minor
ну регайся под тем юзером, под которым создавал БД (в переменных среды смотри)
Прикол в том что оно как то фиг пойми как работает. db: image: postgres:latest container_name: ps01 ports: - "5439:5432" volumes: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=root - POSTGRES_PASSWORD= - POSTGRES_DB=db_test volumes: postgres_data: Но под роот оно не работает.
Minor
попробуй environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres
sudo docker exec -ti 0826ee1a679f bash root@0826ee1a679f:/# su postgres postgres@0826ee1a679f:/$ psql psql: FATAL: role "postgres" does not exist
Minor
как же может не быть postgres? это же системный юзер
Мог лия что то поломать тем что прописал sudo chmod 666 /var/run/docker.sock Проста покамить не прописал ее мне IP не показывала команда docker inspect service_name | grep "IPAddress"
Minor
а как и чем базу создавали?
Если я не туплю базу создают ручками в psql
Вадим
Если я не туплю базу создают ручками в psql
т.е. база уже кем-то была создана и вы ее сейчас пытаетесь использовать, правильно я понял? по поводу sudo chmod 666 /var/run/docker.sock - не подскажу - не силен )
Minor
т.е. база уже кем-то была создана и вы ее сейчас пытаетесь использовать, правильно я понял? по поводу sudo chmod 666 /var/run/docker.sock - не подскажу - не силен )
Я пытаюсь создать базу с именем db_test db: image: postgres:latest container_name: ps01 ports: - "5439:5432" volumes: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=db_test
Вадим
Я пытаюсь создать базу с именем db_test db: image: postgres:latest container_name: ps01 ports: - "5439:5432" volumes: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=db_test
ну тут вы скорее всего не создаете а деларируете что подключаетесь к базе и если ее нет - постр=грес ругнется
Вадим
как тогда создать?
обычно базу создают вне докера а в докере пользуются сначала уберите - POSTGRES_DB=db_test затем уже psql командами создайте базу и лишь в следующий ра когда база будет создана добавьте - POSTGRES_DB=db_test это если принципиально нужно ограничить контейнер только для использования этой базы данных если это не нужно - можно вообще убрать - POSTGRES_DB=db_test
Вадим
Убрал забилдил заново но postgres@e04c06fb4d47:/$ psql psql: FATAL: role "postgres" does not exist
Странно - у меня скрипт один в один как у вас выше и все работает