melvin
у меня сайчас такая ебала
#!/bin/sh
service="$1"
if test "$service" = 'postgres'; then
until PGPASSWORD=$POSTGRES_PASSWORD psql -h "$host" -U "postgres" -c '\q'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
fi
George
melvin
которую я планирую пихать в command
George
точно те ?
melvin
но она затрет команду из докерфайла
Evgeny
а у тебя node_modules копируются в образ?
services:
app-node:
container_name: node-lyncsys24.ru
restart: always
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/www/lyncsys24
- ./node_modules:/www/lyncsys24/node_modules
ports:
- 3000:3000
environment:
- NODE_ENV=production
- PATH=/www/lyncsys24/node_modules/.bin:$PATH
networks:
- app-net
Evgeny
впринципе да
George
посмотри статью. Тебе никто не мешает запускать кнтейнер ОПСЛЕ того, который с постгресом
melvin
George
не в статье. А в моем комменте
George
🤦♂️
melvin
ну да
melvin
хорошо, я попробую
George
ну, повторюсь, что если тебе нужно это, то ты что-то делаешь не так
George
ибо логически подумай
George
у тебя база не стартанула - ну ок
George
а потом она отвалится в процессе работы приложения
George
и как ты будешь это подымать?
melvin
да не в базе дело
George
проще, когда у етбя вообще нет зависимости от порядка запуска
George
я понимаю
melvin
докер компроз не умеет в правильный порядок старта зависимых контейнеров
George
может ты вообще хочешь все обернуть системди юнитами
George
я хз
George
Ты пытаешься изобрести systemd
George
)))))
George
вот ОН ТОЧНО умеет в порядок. Но зачем тогда докер? 😊
melvin
так
melvin
у меня стек нельзя менять
melvin
пожалуйста
George
🤦♂️ кто определил?
melvin
просто помогите с проблемой или не обсерайте
George
короче, пока у тебя не будет полного описания задачи - я тебе не помогу
George
разве что вот этим костылем с хелсчеками
melvin
George
(и, да, он работает только с форматом докер компоуза v2.x)
melvin
вот в такой последовательности нужно все позапускать
melvin
т.е. в сервисе юзер будет
wait-for.sh postgres
George
это один из вариантов.
George
ну, понимаешь, у тебя есть мультивселенная вариантов )
melvin
melvin
вроде подходит
George
и, например, если postgres и user НА РАЗНЫХ машинах, то тебе реально без wait-for.sh не обойтись
melvin
так
melvin
а если хелсчек за все ретраи провалится
George
тогда жопа. И user не стартанет
melvin
атлишна
George
придется идти чинить руками. Но в случае с wait-for.sh это тоже не очень логично ждать зависимый сервис вечно, не так ли?
George
я просто повторюсь, что ты как будто не тот инструмент применяешь.... Но дело твое )
melvin
я забиваю гвозьди телескопом да
melvin
но это кроваваый энтерпрайз детка
George
systemd 😊 умеет в юзер юниты )
melvin
и если я начну возникать телескопом забьют меня
George
и тебе папочка админ ничего не скажет
George
:-P
melvin
George
тем более можно тогда любой беспредел творить
George
😂😂😂😂
melvin
melvin
а хелсчек вечно крутится, даже после старта контейнера?
Vic
Добрый день, такая проблема возникла:
Есть ноутбук Xaomi Pro, на нём установлен Mi BIOS, в котором нет настройки виртуализации (банально нет такого пункта), при этом когда запускаю докер на windows, он запускаться отказывается -- нет виртуализации = докер работать не может.
Правильно я понимаю, что единственный способ -- переустановить биос, либо использовать докер на линукс?
George
melvin
ксооооо
melvin
хотя в принципе не страшно
George
ты в docker ps увидишь живой ли контейнер или нет
George
красиво, же
Evgeny
Почему докер образ работает и запускается нормально, подключаю его же в секцию build уже не работает
George
Evgeny
так работает
Evgeny
docker run -it -p 3000:3000 my-app
Evgeny
так не работает
Evgeny
sudo docker-compose up --build app-node
Evgeny
не может найти файлы
Alexey
George
ну, правильно
Evgeny
при запуске прилоения внутри контейнеар
George
у тебя первая команда - запускает образ БЕЗ СБОРКИ. Т.е. уже готовый
melvin
George
вторая команда - запускает сборку, а потом валится
ill-ya
Можно как-нить запустить по-умолчанию bash автоматически на хосте? типа как .env, перед любой командой