update the golang version from 1.23 to 1.25 in the dockerfile to leverage the latest features and security patches
36 lines
1.3 KiB
Docker
36 lines
1.3 KiB
Docker
# --- ЭТАП 1: Сборка ---
|
||
FROM golang:1.25-alpine AS builder
|
||
|
||
# Устанавливаем рабочую директорию
|
||
WORKDIR /app
|
||
|
||
# Копируем файлы зависимостей
|
||
# Это делается отдельно, чтобы Docker кэшировал слои с модулями
|
||
COPY go.mod go.sum ./
|
||
RUN go mod download
|
||
|
||
# Копируем исходный код
|
||
COPY . .
|
||
|
||
# Собираем бинарный файл
|
||
# CGO_ENABLED=0 нужен для статической линковки (чтобы работало в пустом образе)
|
||
# GOOS=linux гарантирует сборку под Linux
|
||
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/server main.go
|
||
|
||
# --- ЭТАП 2: Запуск ---
|
||
FROM alpine:latest
|
||
|
||
# Устанавливаем часовой пояс и корневые сертификаты (важно для HTTPS запросов)
|
||
RUN apk --no-cache add ca-certificates tzdata
|
||
|
||
WORKDIR /app
|
||
|
||
# Копируем только скомпилированный файл из предыдущего этапа
|
||
COPY --from=builder /app/server .
|
||
COPY --from=builder /app/bin/ipatool .
|
||
|
||
# Открываем порт (тот же, что в коде Huma)
|
||
EXPOSE 8888
|
||
|
||
# Запускаем приложение
|
||
CMD ["./server"] |