Files
tp/main_dc/yalarba/api_yal/Dockerfile
T
valitovgaziz 5a6314613a modified: main_dc/docker-compose.yml
modified:   main_dc/yalarba/api_yal/Dockerfile
add service into docker-compose.yml, upgrade the Dcoekrfile for api_yal
2026-01-30 04:49:52 +05:00

46 lines
1.3 KiB
Docker

FROM golang:1.25.1-alpine AS builder
WORKDIR /app
# Устанавливаем зависимости для компиляции
RUN apk add --no-cache gcc musl-dev git ca-certificates tzdata
# Копируем go.mod и go.sum
COPY go.mod go.sum ./
RUN go mod download
# Копируем исходный код
COPY . .
# Компилируем БЕЗ CGO (указываем путь к main.go)
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/bin/api_yal ./cmd/main.go
# Финальный образ
FROM alpine:latest AS runner
WORKDIR /app
# Устанавливаем зависимости для runtime
RUN apk add --no-cache ca-certificates tzdata curl
# Создаем непривилегированного пользователя
RUN addgroup -g 1001 -S api && \
adduser -u 1001 -S api -G api
# Копируем бинарник из builder
COPY --from=builder /app/bin/api_yal /app/api_yal
# Копируем конфигурационные файлы (если есть)
COPY --from=builder /app/configs /app/configs
# Настраиваем права доступа
RUN chown -R api:api /app
# Переключаемся на непривилегированного пользователя
USER api
# Открываем порт
EXPOSE 8787
# Команда для запуска
CMD ["/app/api_yal"]