diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..60bb581 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.idea +.gitignore +api.env +gen-swag.sh +migrations.sql diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3145ef8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM golang:1.25.1-alpine3.22 AS builder + +RUN apk add --no-cache \ + bash \ + curl \ + git \ + ca-certificates + + +RUN apk add --no-cache tzdata + +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd + + +FROM alpine:3.22 + +RUN apk add --no-cache \ + bash \ + curl \ + ca-certificates \ + tzdata + +COPY --from=builder /app/main /usr/local/bin/app + + +RUN chmod +x /usr/local/bin/app +RUN adduser -D -s /bin/bash appuser +USER appuser + +ENTRYPOINT ["app"] \ No newline at end of file