На чём работает в конечном итоге сервис? Какие Docker-образы использовали?

Сервис в конечном итоге работает внутри контейнера Docker, который содержит скомпилированное бинарное приложение на Go и все необходимые зависимости.

Короткий ответ

Что ответить на собеседовании

Сервис в конечном итоге работает внутри контейнера Docker, который содержит скомпилированное бинарное приложение на Go и все необходимые зависимости. Обычно для Golang-сервисов используют многоступенчатую сборку Docker-образа: на первом этапе (build stage) используется официальный образ golang, например golang:1.20-alpine, для компиляции приложения, а на втором этапе — минимальный образ, например scratch или alpine, куда копируется только скомпилированный бинарник. Это позволяет получить легкий и безопасный образ для продакшена.

Подробный разбор

Ответ с пояснениями

Сервис в конечном итоге работает внутри контейнера Docker, который содержит скомпилированное бинарное приложение на Go и все необходимые зависимости. Обычно для Golang-сервисов используют многоступенчатую сборку Docker-образа: на первом этапе (build stage) используется официальный образ golang, например golang:1.20-alpine, для компиляции приложения, а на втором этапе — минимальный образ, например scratch или alpine, куда копируется только скомпилированный бинарник. Это позволяет получить легкий и безопасный образ для продакшена.

Пример Dockerfile:

# Этап сборки
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myservice

# Финальный образ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myservice .
CMD ["./myservice"]

Таким образом, сервис работает на базе минимального Linux-образа с Go-приложением, что обеспечивает быстрый запуск и небольшие размеры образа.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее