FROM golang:1.26-alpine AS builder

ARG GIT_COMMIT=dev

WORKDIR /app

RUN apk add --no-cache git gcc musl-dev bash

COPY go.mod go.sum ./
RUN go mod download

COPY . .

ENV CGO_ENABLED=1
ENV GIN_MODE=release

RUN go build -o app ./cmd/server

FROM alpine:latest

WORKDIR /app

RUN apk add --no-cache ca-certificates tzdata

COPY --from=builder /app/app .
COPY .env .env

RUN mkdir -p /app/uploads
RUN mkdir -p /app/tmp

RUN adduser -D appuser
RUN chown -R appuser:appuser /app
USER appuser

ENV GIN_MODE=release

EXPOSE 3000

CMD ["./app"]