Бывают моменты, когда нужно написать на Го простой тул, но вот работать он должен на каком-то совершенно олдовом боксе и на не менее олдовом Линуксе.
Докер туда не поставишь без обновления ядра, а ядро обновлять страшно. Ставить там последний Го тоже не вариант, в пакетах его нет, а тащить его туда и ставить руками лень.
Классно, что гошные софты можно компилять и получать бинарник. А еще классно то, что есть кросс-компиляция. То есть на Маке можно скомпилять бинарник, который будет запускаться на Линуске. Это, конечно, не всегда срабатывает, особенно если у вас там используется коммуникация с внешними либами. Надо ставить на Мак кросстулы для gcc или сс.
Легче компилять в Докере, вот так:
Ну так вот. Проблема в том, что бинарник надо доставить на олдовый бокс, а олдовый бокс он на то и олдовый, что с ним лучше не делать никаких манипуляций. А еще этот бокс стоит на NAT’ом.
Как деплоить?
Оказывается, очень просто. Можно компилять у себя на Маке бинарник под Линукс, пушать его в репо, на олдовом боксе пулиться с репо и запускать бинарник.
Хорошо проканывает, если у вас опенсорцевый проект.
🤘
Ранее статья была опубликована тут.