manefesto
и постиг дзен
Alexander
попробую, спасибо 🙂
Alexander
то есть энтрипоинт срабатывает после всех мэпов вольюмов в композе?
manefesto
да, причем ты можешь его переопределить на самом деле
manefesto
но сборка и мап волюма не совместимы После сборки будет волюм подключен
manefesto
то есть он будет подключен не во время сборки, а во время запуска контейнера
Alexander
да я при таком раскладе просто выкину ONBUILD директивы
manefesto
а что за onbuild
manefesto
когда такое появилось
Alexander
а что за onbuild
https://docs.docker.com/engine/reference/builder/#onbuild
Alexander
у наследников этого образа будут запускаться эти триггеры
manefesto
а, понял
Alexander
причём только у наследников, если собрать исключетльно этот образ - всё впустую
Alexander
но можно через мультистейджинг
manefesto
мультистейдж интересная тема помогает не раздувать образы
George
Чо то костыли какие-то опять
manefesto
какие ?
manefesto
миграция в энтрипоинте ?
George
миграция в энтрипоинте ?
Как насчёт миграции в отдельный контейнер вынести ?
manefesto
У меня есть такой контейнер. Типа дефолтный энтрипоинт, а для миграций отдельный сервис в компоузе с энтрипоинтом где накатываются миграции
manefesto
depens_on, но там миграции по факту быстро отрабатывают. Есть вероятность что не успеют. Но разработчику не критично
manefesto
Без всяких wait
Alexander
@manefesto спасибо за идею с энтрипоинтом, всё работает
Tony
Всем привет. Как деплоить образ на AWS не публикуя образ в публичном регистре?
George
Только креденшиалс надо как-то ещё зашиппить
Tony
Есть статья https://habr.com/ru/post/310460 упоминается "не обязательно хранить образ в публичном регистре" вот и интересно, как тогда?)
George
Типа докер хаб - под паролем, или в том же гитлабовском регистри
Tony
Ага, понял. Спасибо!
B
Вышло?
Да, тут прикольнее) спасибо еще раз 👍
Vyaches
Народ, чтото туплю Подскажите плз как запустить docker контейнер в фоне? -d
Vyaches
ага) нашел, спасчибо)
Vyaches
Ну типа да) А потом чтоб логи глянуть - docker logs и ключ контейнера же?
George
dicker logs --tail 100 -f
George
Чтоб поток логов получить, но не с начала работы контейнера
Vyaches
Большое спасибо!
tfhx8
Внутри докера скрипт пытается сделать запись, но не может, так как эта дира куда идет запись опдключется через volumes и права на ней главной машины. А внутри докера пользователь другой. Как обычно правильно решать эту проблему? Можно из вне дать полный доступ, но это как то не то решение
tfhx8
волум - nfs - smb -?
дира, на этой же машине
Sergey
снаружи сделать chown на нужного пользователя по id
tfhx8
снаружи сделать chown на нужного пользователя по id
а он же будет меняться если к примеру на другую машину перенести и запустить?
Sergey
а он же будет меняться если к примеру на другую машину перенести и запустить?
если пользователя заводят внутри контейнера тем же образом, то не будет
Sergey
или откуда угодно с явным указанием id
Sergey
А как же "А внутри докера пользователь другой"?
Sergey
Рут всегда с id=0
tfhx8
хотя со врал, там вебсервер работатет из под www-data
kSandr
нужно использовать не бинды а волумы, в другом чатике это уже сказали, либо выставить соответствующие права на папку с хоста , либо еще можно использовать опцию --pid , ну или запускаться от рута, да я обычно просто перед запуском создаю папку с соответствующими правами , или использую волумы
kSandr
это бинды а тебе нужны волумы ...
https://docs.docker.com/storage/volumes/
tfhx8
это бинды а тебе нужны волумы ...
просто в конфиге компаса внутри опции volumes:, я подумал эти те же самые volume)
kSandr
просто в конфиге компаса внутри опции volumes:, я подумал эти те же самые volume)
ну там типа это считается бинд маунт, типа ты биндишь хостовую папку на хост
kSandr
а у докера, есть специальная сущность volume для хранения данных и предпочтительней использовать ее
kSandr
поидее она должна наследовать права диры
tfhx8
поидее она должна наследовать права диры
оно будет работать, если я права диры поменяю, но я хочу чтобы вообще все на автомате, чтоб руками не лазить. Просто при сборке компосом, чтобы все работатло
kSandr
а через компос ее как то можно указывать?
services: servicename: image: image restart: always ports: - "80:80" - "443:443" volumes: - data:/var/www/html/public - logs:/var/www/html/logs volumes: data: logs:
kSandr
объявляешь в композе волумы, и указываешь их при пробросе bla - blabla - bla bla bla потом волумы volumes: blablala asdasd
tfhx8
объявляешь в композе волумы, и указываешь их при пробросе bla - blabla - bla bla bla потом волумы volumes: blablala asdasd
спс. Просто не совсем понимаю, теперь как 2 раза volume, вот которая нижняя, она там что такого делает то? Она всмысле внутри контейнера прибавляет место и постоянно там храниться будет?
kSandr
у тебя композ. в котором описывается стенд. сперва у тебя описываются сервисы ... services: blas: blasla ... asdasd потом волумы volumes: lassa: asdas ... asdasd: asd так-же ты можешь описать и прочие вещи , такие как сети
kSandr
волумы и сервисы это объекты
kSandr
их нужно объявить, что-бы композ при старте знал что их нужно создать
kSandr
а то что ты пишешь в разделе сервисами, это ты указываешь что нужно воспользоваться вон тем волумом, который там объявлен
kSandr
так-же ты можешь насоздавать сетей
kSandr
они же там эти volume в контейнере теперь постоянно будут?
ну пока ты их не удалишь, можешь набрать docker volume list и он выдаст список существующих волумов
kSandr
физически они лежат тут ... /var/lib/docker/volumes
tfhx8
тоесть если я из вне изменения в файлах сделаю, они в контейнере не отобразятся?
kSandr
отобразятся, но так делать не надо
kSandr
т.е. если задротишь на то, что-бы делать все правильно, стильно, модно и молодежно - то так делать не нужно )
kSandr
тогда сразу лучше права на папку сделай )
tfhx8
т.е. если задротишь на то, что-бы делать все правильно, стильно, модно и молодежно - то так делать не нужно )
но файлы частенько модифицируются, это или каждый раз пересобирать контейнер с новыми изменениями или лезть в старый и вручуную изменять?)