1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-03-17 20:17:48 +02:00

Merge branch 'master' into version/2.1

This commit is contained in:
DarthSim 2018-10-25 22:49:14 +06:00
commit c2395ef5af
6 changed files with 24 additions and 8 deletions

View File

@ -10,3 +10,6 @@ docs/
LICENSE LICENSE
README.md README.md
CHANGELOG.md CHANGELOG.md
Dockerfile
.dockerignore

View File

@ -1,21 +1,29 @@
FROM alpine:edge FROM alpine:edge
MAINTAINER Sergey Aleksandrovich <darthsim@gmail.com> LABEL maintainer="Sergey Alexandrovich <darthsim@gmail.com>"
ENV GOPATH /go ENV GOPATH /go
ENV PATH /usr/local/go/bin:$PATH ENV PATH /usr/local/go/bin:$PATH
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
ADD . /go/src/github.com/DarthSim/imgproxy ADD . /go/src/github.com/DarthSim/imgproxy
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk add --no-cache --update bash vips ca-certificates \ && apk --no-cache upgrade \
&& apk add --no-cache --virtual .build-deps go gcc musl-dev fftw-dev vips-dev \ && apk add --no-cache --virtual .build-deps go gcc musl-dev fftw-dev vips-dev \
&& cd /go/src/github.com/DarthSim/imgproxy \ && cd /go/src/github.com/DarthSim/imgproxy \
&& CGO_LDFLAGS_ALLOW="-s|-w" go build -v -o /usr/local/bin/imgproxy \ && CGO_LDFLAGS_ALLOW="-s|-w" go build -v -o /usr/local/bin/imgproxy \
&& apk del --purge .build-deps \ && apk del --purge .build-deps \
&& rm -rf /var/cache/apk* && rm -rf /var/cache/apk*
FROM alpine:edge
LABEL maintainer="Sergey Alexandrovich <darthsim@gmail.com>"
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk --no-cache upgrade \
&& apk add --no-cache ca-certificates bash vips \
&& rm -rf /var/cache/apk*
COPY --from=0 /usr/local/bin/imgproxy /usr/local/bin
CMD ["imgproxy"] CMD ["imgproxy"]
EXPOSE 8080 EXPOSE 8080

View File

@ -4,4 +4,4 @@ imgproxy comes with a built-in health check HTTP endpoint at `/health`.
`GET /health` returns HTTP Status `200 OK` if the server is started successfully. `GET /health` returns HTTP Status `200 OK` if the server is started successfully.
You can use this for readiness/liveness probe in when deploying with a container orchestration system such as Kubernetes. You can use this for readiness/liveness probe when deploying with a container orchestration system such as Kubernetes.

View File

@ -1,7 +1,7 @@
defmodule App.Imgproxy do defmodule App.Imgproxy do
@prefix "https://imgproxy.mybiz.xyz" @prefix "https://imgproxy.mybiz.xyz"
@key Base.decode16!("943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881") @key Base.decode16!("943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881", case: :lower)
@salt Base.decode16!("520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5") @salt Base.decode16!("520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5", case: :lower)
def build_url(img_url, opts) do def build_url(img_url, opts) do
path = build_path(img_url, opts) path = build_path(img_url, opts)

View File

@ -8,7 +8,7 @@ import (
_ "net/http/pprof" _ "net/http/pprof"
) )
const version = "2.0.1" const version = "2.0.2"
type ctxKey string type ctxKey string

View File

@ -341,6 +341,11 @@ func processImage(ctx context.Context) ([]byte, error) {
if err = vipsSmartCrop(&img, po.Width, po.Height); err != nil { if err = vipsSmartCrop(&img, po.Width, po.Height); err != nil {
return nil, err return nil, err
} }
// Applying additional modifications after smart crop causes SIGSEGV on Alpine
// so we have to copy memory after it
if err = vipsImageCopyMemory(&img); err != nil {
return nil, err
}
} else { } else {
left, top := calcCrop(imgWidth, imgHeight, po) left, top := calcCrop(imgWidth, imgHeight, po)
if err = vipsCrop(&img, left, top, po.Width, po.Height); err != nil { if err = vipsCrop(&img, left, top, po.Width, po.Height); err != nil {