Dockerfile 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. FROM golang:1-buster
  2. LABEL maintainer="Sergey Alexandrovich <darthsim@gmail.com>"
  3. ARG VIPS_VERSION=8.9.1
  4. ARG IMAGEMAGICK_VERSION=7.0.9-20
  5. ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig
  6. ENV LD_LIBRARY_PATH /lib64:/usr/lib64:/usr/local/lib
  7. ENV CGO_LDFLAGS_ALLOW "-s|-w"
  8. # Install dependencies
  9. RUN apt-get update \
  10. && apt-get install -y --no-install-recommends \
  11. curl \
  12. git \
  13. ca-certificates \
  14. build-essential \
  15. libtool \
  16. libfftw3-dev \
  17. libglib2.0-dev \
  18. libexpat1-dev \
  19. libjpeg62-turbo-dev \
  20. libpng-dev \
  21. libwebp-dev \
  22. libgif-dev \
  23. librsvg2-dev \
  24. libexif-dev \
  25. liblcms2-dev \
  26. libheif-dev \
  27. libtiff-dev \
  28. libimagequant-dev
  29. # Build ImageMagick
  30. RUN cd /root \
  31. && curl -Ls https://github.com/ImageMagick/ImageMagick/archive/$IMAGEMAGICK_VERSION.tar.gz | tar -xz \
  32. && cd ImageMagick-$IMAGEMAGICK_VERSION \
  33. && ./configure \
  34. --enable-silent-rules \
  35. --disable-static \
  36. --disable-openmp \
  37. --disable-deprecated \
  38. --disable-docs \
  39. --with-threads \
  40. --without-magick-plus-plus \
  41. --without-utilities \
  42. --without-perl \
  43. --without-bzlib \
  44. --without-dps \
  45. --without-freetype \
  46. --without-fontconfig \
  47. --without-jbig \
  48. --without-jpeg \
  49. --without-lcms \
  50. --without-lzma \
  51. --without-png \
  52. --without-tiff \
  53. --without-wmf \
  54. --without-xml \
  55. --without-webp \
  56. --without-heic \
  57. --without-pango \
  58. && make install-strip \
  59. && rm -rf /usr/local/lib/libMagickWand-7.*
  60. # Build libvips
  61. RUN cd /root \
  62. && curl -Ls https://github.com/libvips/libvips/releases/download/v$VIPS_VERSION/vips-$VIPS_VERSION.tar.gz | tar -xz \
  63. && cd vips-$VIPS_VERSION \
  64. && ./configure \
  65. --without-python \
  66. --without-OpenEXR \
  67. --enable-debug=no \
  68. --disable-static \
  69. --disable-introspection \
  70. --enable-silent-rules \
  71. && make install-strip \
  72. && rm -rf /usr/local/lib/libvips-cpp.*
  73. WORKDIR /app
  74. COPY . .
  75. # Build imgproxy
  76. RUN go build -v -o /usr/local/bin/imgproxy
  77. # ==================================================================================================
  78. # Final image
  79. FROM debian:buster-slim
  80. LABEL maintainer="Sergey Alexandrovich <darthsim@gmail.com>"
  81. RUN apt-get update \
  82. && apt-get install -y --no-install-recommends \
  83. bash \
  84. ca-certificates \
  85. libsm6 \
  86. libfftw3-3 \
  87. libglib2.0-0 \
  88. libexpat1 \
  89. libjpeg62-turbo \
  90. libpng16-16 \
  91. libwebp6 \
  92. libwebpmux3 \
  93. libwebpdemux2 \
  94. libgif7 \
  95. librsvg2-2 \
  96. libexif12 \
  97. liblcms2-2 \
  98. libheif1 \
  99. libtiff5 \
  100. libimagequant0 \
  101. && rm -rf /var/lib/apt/lists/*
  102. COPY --from=0 /usr/local/bin/imgproxy /usr/local/bin/
  103. COPY --from=0 /usr/local/lib /usr/local/lib
  104. ENV VIPS_WARNING=0
  105. ENV MALLOC_ARENA_MAX=2
  106. ENV LD_LIBRARY_PATH /lib64:/usr/lib64:/usr/local/lib
  107. CMD ["imgproxy"]
  108. EXPOSE 8080