# --- Этап 1: Сборка (Builder) --- FROM golang:1.24-alpine AS builder WORKDIR /app # Копируем файлы go.mod и go.sum для загрузки зависимостей # Копируем файлы go.mod и go.sum для загрузки зависимостей COPY go.mod go.sum ./ ENV GOPROXY=direct RUN apk add --no-cache git RUN go mod download # Копируем весь остальной исходный код COPY . . # Собираем приложение. На этот раз точка входа - корень проекта. RUN CGO_ENABLED=0 GOOS=linux go build -o /app/ping-helper -ldflags="-w -s" . # --- Этап 2: Финальный образ (Final) --- FROM alpine:latest WORKDIR /app # Копируем только скомпилированный бинарник из этапа сборки COPY --from=builder /app/ping-helper . # Добавляем сертификаты RUN apk --no-cache add ca-certificates # Запускаем от имени непривилегированного пользователя RUN addgroup -S appgroup && adduser -S appuser -G appgroup USER appuser # Указываем, что контейнер будет слушать порт 8081 EXPOSE 8081 # Команда для запуска нашего приложения ENTRYPOINT ["/app/ping-helper"]