Тимофей
это нормально
так я молодой, не хочу быстро постареть)
Илья
https://stackoverflow.com/questions/42548375/why-docker-build-is-so-slow#42549455
Илья
Ну и посмотри нагрузку пк при сборке, скорее всего докер использует не всю мощность
Eugene
Ну и посмотри нагрузку пк при сборке, скорее всего докер использует не всю мощность
от создателей фразы “люди используют мозг только на 10 процентов”
Eugene
бля, изменил
Eugene
1,10
Артем
делаю минимальные изменения в коде
у тебя плохой докерфайл скорее всего, слишком много слоев. Поделись, глянем. У меня 5 сек билдится обычно:)
Илья
у меня такой https://github.com/illiafox/grpc-lake/blob/0.1/Dockerfile
Maks
я через compose билжу
На какой системе?
Илья
Тимофей
Maks
А еще зачем билдить каждый раз снуля. Там же по слоям билдятся только измененные слои и далее
Илья
ну именно сам билд 30 секунд
Тимофей
https://github.com/Timasha/MessengerServer/blob/backend/build/authService/Dockerfile
Илья
пакеты кешируются
Тимофей
https://github.com/Timasha/MessengerServer/blob/backend/build/authService/Dockerfile
после go mod download начинает долго билдиться
Илья
1,03 гига
лютый
Артем
Тимофей
я где-то проебался?)
Илья
у тебя в образ тянется вся убунта
Илья
у меня образ весит 18 мегов
Артем
юзай мульти стейдж
Артем
через alpine, scratch.
Тимофей
а что у меня не так
Тимофей
у тебя в образ тянется вся убунта
Тимофей
у меня образ весит 18 мегов
Артем
и ещё, никогда не делай кучу RUN комманд. Они все (каждая) создает слой
Артем
склеивай в одну, например: apt install 123 \ 234 456 678 && \ mkdir folder итд
Артем
еще можно врубать флаг --no-cache, еще в докер игнор кидай .git, Dockerfile сам, bin папку
Артем
но самое главное - используй мульти стейдж докерфайл
Тимофей
но самое главное - используй мульти стейдж докерфайл
я щас подумал, он же у меня всё равно будет запускаться есь
Артем
не, часть с убунтой удалится
Артем
останется легкий 20мб образ
Тимофей
а, прикольно
Тимофей
буду пользоваться, спасибо))
Артем
у Ильи тоже есть парочка лишних RUN.. :)
Maks
я щас подумал, он же у меня всё равно будет запускаться есь
Через стейджи у тебя первый стейдж качает убунту копирует туда исходники собирает пакет а потом из него копируешь только бинарник в новый чистый линукс какой нить мелкий типа альпин
Maks
И остается только последний стейдж - сам образ. Его потом используешь везде. Из локального кеша
Maks
Или из докерхаба какого нить или еще откуда то
Beta
Сюда скидывали пример либы чистой архитектуры, можете переслать?
Alexey
Соратники, а что можно почитать про асинхронные алгоритмы и паттерны?
Илья
Rostislav
Соратники, а что можно почитать про асинхронные алгоритмы и паттерны?
имхо для начала главы в learning go норм и может хватить
Rostislav
а потом конкарренси ин го, выше скинули
Илья
а потом конкарренси ин го, выше скинули
слишком много воды в начале как по мне
Rostislav
слишком много воды в начале как по мне
мне она если честно не понравилась. Но я другого не знаю
Сидредин
Alexey
имхо для начала главы в learning go норм и может хватить
Да не, я хочу именно на практике. Помню я на питоне делал штуку, которая таски плодила и партиями запускала , потом я узнал что такая есть 😁 Aiojobs кажется Изучу ту книгу, мб там все есть Upd, да, то что искал
Alexey
с практически задачками сложнее, я не нашел норм источников.
Единственный выход - самому придумывать, вот только это упирается в текущие знания
Сидредин
Облачный go
Книга так называется?
Rostislav
Облачный go
там их всего 4. Причем первые 2 - ок. А вторые 2 вообще хз, не относил бы их к го
Сидредин
Спасибо. Надо ещё написать книгу "Облачный PHP"
Sebor▂▅▇█▓▒░
Спасибо. Надо ещё написать книгу "Облачный PHP"
"Создание ненадежных сервисов в надёжных окружениях"
Кіт ✙
Почему в runtime/map.go есть функция mapclear, но она не используется? Как ею воспользоваться?
Кіт ✙
Ага, вдуплил. Если оно видит, что мы проходимся по ключам мапы и тут же удаляем их, оно оптимизирует это в нормальный mapclear() из runtime/map.go
Кіт ✙
Жесть да
iostream
qq знаю что в Go нет ООП, поэтому вопрос: как сделать что-то наподобие статического датакласса с возможностью изменения данных в нём? пример на python: # foo.py from dataclasses import dataclass @dataclass class Foo: width = 10 height = 20 # bar.py from foo import Foo class Bar: def edit(self): Foo.width = 30 # main.py from foo import Foo from bar import Bar print(Foo.width, Foo.height) # 10 20 Bar().edit() print(Foo.width, Foo.height) # 30 20 Foo.width = 40 print(Foo.width, Foo.height) # 40 20
Ваня Гречка
ООП это парадигма программирования, а не возможность использовать класс
iostream
ok а как реализовать такое
iostream
может есть какие-то пакеты
Vladislav
ok а как реализовать такое
просто структурой
Emin Zalaev
python moment
iostream
python moment
ненадо.... я из плюсов пришел
iostream
просто структурой
а стоп а как изначально задать значение и затем его менять, не создавая объект?
iostream
😡😡😡 так это получается не решение вопроса
Emin Zalaev
никак
так в смысле, сказали же что в Го есть ооп значит можно