George
Lev
Так
Lev
Я вот смотрю докерфайлы на альпин - там адова жесть. Но если я погугли как поставить пакет на альпин - то это просто apk add без геморроя
Lev
В чем дело?
George
в смысле?
George
такая же хня на убунту
Richard
это как ? services.postgres.environment contains {"POSTGRES_USER": "eventstracker"}, which is an invalid type, it should be a string postgres:
image:
postgres:latest
build:
postgres
volumes:
- "./postres/data:/var/lib/postgresql/data/pgdata"
restart:
always
ports:
- "5432:5432"
environment:
- POSTGRES_USER: "eventstracker"
- POSTGRES_PASSWORD: "A3dSA24Dctf2v4HE"
- PGDATA: "/var/lib/postgresql/data/pgdata"
George
я тебе поэтому и сказал, что оптимально, когда у тебя установка софта == apk add || apt install || yum install
George
George
оформи его маркдауном
George
или вылей на пейстбин
Richard
https://pastebin.com/iWLiw7HF
George
хм
George
почему у тебя в 16-й строчке так?
George
ты разницу видишь между 16-й и 29-31 стрчоками?
Richard
да
George
и?
George
на мысли не наводит?
Richard
меняю
Lev
А почему по слойно нельзя разделять установку пакетов? Они ж вроде только добавляют файлы. И размер расти не должен
George
George
поясню
George
apt update - обновляет кэш пакетного менеджера
George
далее ты можешь установить пакеты хоть послойно
George
но потом захочешь удалить кэш пакетного менеджера.
George
И тут ты попадаешь на эти +100-200 МБ кэшей
Lev
Смысл есть - можно отранжировать по частоте обновления
George
нет. Это так не работает (
Lev
Оо
George
смотри. Два консерна
George
1. выше я описал с кэшами - поэтому установку + очистку надо делать в одном RUN. Т.к. если ты в одном слое добавишь файл 1ГиБ, а в другом его удалишь, то образ будет +1ГиБ. Это как дерево гит... Можешь делать с репой что угодно, но фиксация происходит именно в коммите
George
2. если у тебя есть
RUN apk add nginx
RUN apk add nodejs
RUN apk add python
и ты потом что-то еще добавляешь, то докер тебе с кэшированием поможет
но если nodejs обновится, то все последующие слои будут с кэш-промахом и будут выполнены по новой. Даже если пакеты не изменились. Жопа, короче.
Отчасти это решает мультистейдж с передачей артефактов между слоями... но это большой такой костыль.
George
вторая история - что единственно верной конфигурации как отранжировать эти команды RUN в принципе нет
Lev
Окей
George
есть еще любители сквошить образы... но это практика так себе, на самом деле
George
и, да, я уже задолбался, ибо у меня есть образы и по 7ГиБ (nvidia cuda + ML модели)
Anonymous
7гб? рили?
Anonymous
7гб?
Anonymous
семь?
Lev
Надо ли апдейдить репы при сборке образа на альпин?
George
George
George
в смысле - я б это не делал, но без этого обновление в принципе не возможно, т.к. каталог на оф зеркале обычно сильно обновляется
George
то же самое с бубунтой и центос
Anonymous
ДА
необычно. даже если самому бейс имандж собирать ?
George
George
https://hub.docker.com/r/nvidia/cuda/
Lev
Lev
Как правильно апдейтить? Надо ли апгрейдить?
George
я написал. Каталог апдейтить
Anonymous
а для чего это? если не секрет? не проще ли тогда вообще виртуалку?..
George
> Надо ли апгрейдить?
нет
Anonymous
жутко интересно!
George
апгрейдить - у тебя сесурити апдейты должны влетать в базовый имидж
George
и если тебе нужно, то ты должен базироваться от нового базового имиджа с обновленным тегом
George
George
и вообще оно в кубер едет
George
Anonymous
жуть
Lev
Anonymous
но интересная жуть
George
Lev
А потом как почистить?
George
rm /var/lib/apt чего-то там
George
или /var/cache/apt - не помню
Richard
Lev
А если использовать --no-cache? Оно сразу апдейтить пролезет?
Lev
@gecube )
George
Lev
Походу можно --no-cache и все... Спсб
Richard
Richard
я просто не понимаю что это за ошибка
George
у нас переменные вот так
George
environment:
- XXX=YYY
George
но это вообще-то есть в доке на компоуз
George
а ты пишешь
Richard
а спасибо
George
environment:
- XXX: YYY
George
как бы немного другое