diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b48419d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.idea +.git +.gitignore +config.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..71a941d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,42 @@ +FROM golang:1.25.3-alpine3.22 AS builder + +RUN apk add --no-cache \ + alpine-sdk \ + pkgconfig \ + libjpeg-turbo-dev \ + libpng-dev \ + giflib-dev \ + libwebp-dev \ + libexif-dev \ + glib-dev \ + libffi-dev \ + vips-dev + +WORKDIR /app + +COPY go.* ./ +RUN go mod download + +COPY . . + +RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o main "./cmd" + +FROM alpine:3.22 + +RUN apk add --no-cache \ + libjpeg-turbo \ + libpng \ + giflib \ + libwebp \ + libexif \ + glib \ + libffi \ + tzdata \ + ca-certificates + +COPY --from=builder /usr/lib/vips* /usr/lib/ +COPY --from=builder /app/main /usr/local/bin/app + +RUN chmod +x /usr/local/bin/app + +ENTRYPOINT ["app"] \ No newline at end of file