From d0a9b684d0b3011c70dbda558f7e8e83faccc8ab Mon Sep 17 00:00:00 2001 From: damir Date: Sat, 4 Apr 2026 14:57:29 +0000 Subject: [PATCH] Update Dockerfile --- Dockerfile | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 93a316a..722af30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,30 @@ # ЭТАП 1: Сборка FROM golang:1.21-alpine AS builder -# Устанавливаем рабочую директорию +# Устанавливаем git, так как go mod tidy может его потребовать +RUN apk add --no-cache git + WORKDIR /build -# Копируем файлы зависимостей +# Копируем только go.mod (если go.sum нет, это не страшно) COPY go.mod ./ -# Если есть go.sum, раскомментируйте следующую строку -# COPY go.sum ./ - -# Загружаем зависимости -RUN go mod download +# Если go.sum существует локально, он подхватится, если нет — пропустится +COPY go.sum* ./ # Копируем исходный код COPY . . -# Собираем статически скомпилированный бинарный файл для Linux +# ВЫПОЛНЯЕМ TIDY ПЕРЕД СБОРКОЙ +# Это создаст/обновит go.sum внутри контейнера +RUN go mod tidy + +# Собираем бинарник RUN CGO_ENABLED=0 GOOS=linux go build -o /app-binary main.go -# ЭТАП 2: Финальный образ +# ЭТАП 2: Финальный образ (без изменений) FROM alpine:latest - -# Добавляем сертификаты (нужны для HTTPS запросов) и временную зону RUN apk --no-cache add ca-certificates tzdata - WORKDIR /root/ - -# Копируем только собранный бинарник из первого этапа COPY --from=builder /app-binary . - -# Открываем порт EXPOSE 8080 - -# Запускаем приложение CMD ["./app-binary"] \ No newline at end of file