/
Anabol1ks
/
test_hack
Обзор
Документация
Войти
/
Anabol1ks
/
test_hack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Dockerfile
54 строки
2 KB
Anabol1ks
docker
22 ноя 2025, 14:35
22 ноя 2025, 14:35
94000cb
Код
Авторство
О чём код?
# Многоэтапная сборка для минимального размера образа FROM golang:1.25-alpine AS builder # Устанавливаем необходимые инструменты для сборки RUN apk add --no-cache git make # Устанавливаем swag для генерации Swagger документации RUN go install github.com/swaggo/swag/cmd/swag@latest WORKDIR /app # Копируем go.mod и go.sum для кеширования зависимостей COPY go.mod go.sum ./ RUN go mod download # Копируем исходный код COPY . . # Генерируем Swagger документацию RUN swag init -g cmd/ciwzd/main.go -o docs # Собираем приложение с оптимизацией ARG VERSION=docker ARG COMMIT=unknown ARG BUILD_DATE=unknown RUN CGO_ENABLED=0 GOOS=linux go build \ -ldflags="-s -w -X 'ciwzd/internal/version.Version=${VERSION}' -X 'ciwzd/internal/version.Commit=${COMMIT}' -X 'ciwzd/internal/version.BuildDate=${BUILD_DATE}'" \ -o /app/bin/ciwzd \ ./cmd/ciwzd # Финальный образ - минимальный размер FROM alpine:latest # Устанавливаем ca-certificates для HTTPS запросов и git для клонирования репозиториев RUN apk --no-cache add ca-certificates git WORKDIR /root/ # Копируем скомпилированное приложение из builder COPY --from=builder /app/bin/ciwzd . # Создаём директорию для временных файлов RUN mkdir -p /tmp/ciwzd # Порт для API сервера EXPOSE 8080 # Переменные окружения по умолчанию ENV ENV=production \ PORT=8080 # Запускаем сервер CMD ["./ciwzd", "serve"]