FROM golang:1.26-alpine AS build WORKDIR /src COPY backend/go.mod backend/go.sum ./ RUN go mod download COPY backend/ ./ RUN CGO_ENABLED=0 go build -trimpath -o /server ./cmd/server FROM alpine:3.20 RUN adduser -D -H app COPY --from=build /server /server RUN mkdir -p /data/cache /data/books && chown app:app /data/cache /data/books USER app EXPOSE 8080 ENTRYPOINT ["/server"]