habreplicator
6 лет назадГрузите апельсины бочках. Релизы в Golang проектах
Автор: mr_elzor
Источник: https://habrahabr.ru/post/347094/
Источник: https://habrahabr.ru/post/347094/
Данная статья является продолжением инструментальной темы затронутой в прошлой публикации. Сегодня мы постараемся разобраться со сборкой релизов Golang приложений в виде единого исполняемого файла, включающего ресурсные зависимости, и вопросом оптимизации размера итоговой сборки. Также рассмотрим процесс построения рабочего окружения отвечающего следующим требованиям:
- Переносимость. Окружение должно быть легко воспроизводимо на различных машинах.
- Изолированность. Окружение не должно влиять на версии установленных библиотек и программ на машине разработчика.
- Гибкость. Окружение должно позволять собирать релизы для различных версий Golang и Linux (разные версии дистрибутивов и glibc).
- Повторяемость. Не должно быть магии и тайных знаний, то есть все шаги сборки проекта и зависимостей должны быть описаны кодом.