Size: a a a

Saint P Ruby Community

2020 June 19

MS

Mikhail Sytchev in Saint P Ruby Community
будет +\- 35 Мб
источник

N

Nik in Saint P Ruby Community
node_modules сожрал 100, from использую ruby:2.71 что весит 842 то есть сами рельсы еще 600
источник

N

Nik in Saint P Ruby Community
источник

N

Nik in Saint P Ruby Community
о! ruby         2.5.1-alpine   45.3MB
источник

MS

Mikhail Sytchev in Saint P Ruby Community
FROM ruby:2.7.1-alpine3.11
источник

NB

Nikita Bulai in Saint P Ruby Community
В обыном под капотом Ubuntu, а она прям оч дофига весит, зато кучу всего сразу имеет
На alpine обычно начинаются пляски с бубном по установке 100500 пакетов, чтобы работали nokogiri, rmagic и бла бла бла
источник

MS

Mikhail Sytchev in Saint P Ruby Community
да чот с убунтой все те же бинарные зависимости приходится устанавливать отдельно
источник

NB

Nikita Bulai in Saint P Ruby Community
Гораздо меньше, чем с Alpine :)
источник

MS

Mikhail Sytchev in Saint P Ruby Community
короч, первый шаг к уменьшению образа — перейти на Alpine
источник

MS

Mikhail Sytchev in Saint P Ruby Community
еще можно посмотреть в сторону https://dockersl.im/
источник

NB

Nikita Bulai in Saint P Ruby Community
Mikhail Sytchev
короч, первый шаг к уменьшению образа — перейти на Alpine
На самом деле это по факту основной шаг. Остальные (типо удалить tmp файлы, поменьше слоёв делать и т.д.) уменьшают оч несущественно (конечно всё зависит от того, что там происходит в Докерфайле)
источник

MS

Mikhail Sytchev in Saint P Ruby Community
чисто поржать выбрал самый толстый образ на своей машине и прогнал docker-slim
источник

MS

Mikhail Sytchev in Saint P Ruby Community
docker-slim[build]: state=building message='building optimized image'
docker-slim[build]: state=completed
docker-slim[build]: info=results status='MINIFIED BY 383.13X [1997350720 (2.0 GB) => 5213189 (5.2 MB)]'
источник

MS

Mikhail Sytchev in Saint P Ruby Community
уж я не знаю что он там сделал =)
источник

MS

Mikhail Sytchev in Saint P Ruby Community
буду смотреть
источник

MS

Mikhail Sytchev in Saint P Ruby Community
так что я бы второй совет тоже не отметал =)
источник

NB

Nikita Bulai in Saint P Ruby Community
Проверь, чтобы образ работал для начала :) ну там тесты прогони или как-нить
источник

N

Nik in Saint P Ruby Community
спасибо
источник

АШ

Алексей Шеин... in Saint P Ruby Community
Чем alpine, лучше берите debian-slim
источник

PP

Pavel Peganov in Saint P Ruby Community
О, как раз недавно развлекался с этим.
Из очевидного: стоит использовать по назначению группы гемов в бандлере и ставить только то, что в конкретном образе надо.
Ещё билд-тулы и хедеры библиотек, нужные для установки native extensions, довольно толстые, можно собирать экстеншены в отдельном образе (multi-stage build) и копировать /usr/local/bundle/ (в официальном образе гемы там) из образа билд-тулами в рантаймовый образ вариации slim или alpine. Важно только, что собирать экстеншены надо на том же дистре, на котором они потом будут запускаться, а то могут быть приколы из-за разных версий системных библиотек.
источник