Size: a a a

Docker — русскоговорящее сообщество

2020 January 02

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
George Gaál
Мы find очень много что делаем. Никогда не подводил ) бывают сложности с использованием, т.к у утилиты 100500 аргументов. Но в справке все описано
ну можно седом обрабатывать и брать нужжный аргумент из аутпута
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
George Gaál
Ну, у вас интерпретатор существует в рамках одного блока RUN
а
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
точно
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Если переходим к следующему RUN - это эквивалентно выключению контейнера
источник

GG

George Gaál in Docker — русскоговорящее сообщество
И созданию его заново
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Соответственно, среда сбрасывается.
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Какие решения ? Да все плохо. В конце-концов, можно все собирать или снаружи докера, а внутрь передавать окончательный артефакт
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Или использовать multistage dockerfile
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Вот 😭
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
George Gaál
Какие решения ? Да все плохо. В конце-концов, можно все собирать или снаружи докера, а внутрь передавать окончательный артефакт
абсолютно отвратительно 0/10
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
George Gaál
Или использовать multistage dockerfile
так, я недавно во всей теме докеризации, можно подробней об этом?
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Sasha Zhu
так, я недавно во всей теме докеризации, можно подробней об этом?
Ну, это способ написания докерфайла вида

FROM ubuntu as base

Blablbla
# здесь какая-то сборка со стопицот слоев

FROM scratch as final

COPY --from=base /artifact /opt
# здесь перекидывает между разными образами нужные файлы
# Профит !
источник

GG

George Gaál in Docker — русскоговорящее сообщество
В результате конечный образ с минимумом слоев и минимального размера. Плюс докер использует свой кэш для сборок
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
аааа, погуглю
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
про кэш да, удобно и хорошо
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Ну, к сожалению - это не панацея
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Докер сравнивает только по хэш сумме команды из докерфайла и зависимых файлпх
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Т.е. если в докерфайле что-то типа RUN wget http://very-often.changing.org, то нужно извращаться, чтобы докер понял, что команда возвращает новый результат (((
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
угу, эт я знаю
источник

SZ

Sasha Zhu in Docker — русскоговорящее сообщество
так, ну раз так, то буду советоваться сейчас, как сделать оптимальней
источник