Dockerfile 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. ARG BASE_IMAGE_VERSION="v3.11.0"
  2. FROM darthsim/imgproxy-base:${BASE_IMAGE_VERSION} as build
  3. ARG BUILDARCH
  4. ARG TARGETARCH
  5. RUN dpkg --add-architecture ${BUILDARCH} \
  6. && apt-get update \
  7. && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libstdc++6:${BUILDARCH}
  8. ENV CGO_ENABLED=1
  9. ENV GOOS=linux
  10. ENV GOARCH=$TARGETARCH
  11. COPY . .
  12. RUN bash -c 'go build -v -ldflags "-s -w" -o /opt/imgproxy/bin/imgproxy'
  13. # Remove unnecessary files
  14. RUN rm -rf /opt/imgproxy/lib/pkgconfig /opt/imgproxy/lib/cmake
  15. # ==================================================================================================
  16. # Final image
  17. FROM ubuntu:noble
  18. LABEL maintainer="Sergey Alexandrovich <darthsim@gmail.com>"
  19. RUN apt-get update \
  20. && apt-get upgrade -y \
  21. && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
  22. bash \
  23. ca-certificates \
  24. libstdc++6 \
  25. fontconfig-config \
  26. fonts-dejavu-core \
  27. media-types \
  28. libjemalloc2 \
  29. libtcmalloc-minimal4 \
  30. && ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so \
  31. && ln -s /usr/lib/$(uname -m)-linux-gnu/libtcmalloc_minimal.so.4 /usr/local/lib/libtcmalloc_minimal.so \
  32. && rm -rf /var/lib/apt/lists/* \
  33. && rm -rf /etc/fonts/conf.d/10-sub-pixel-rgb.conf /etc/fonts/conf.d/11-lcdfilter-default.conf
  34. COPY --from=build /opt/imgproxy/bin/imgproxy /opt/imgproxy/bin/
  35. COPY --from=build /opt/imgproxy/lib /opt/imgproxy/lib
  36. RUN ln -s /opt/imgproxy/bin/imgproxy /usr/local/bin/imgproxy
  37. COPY docker/entrypoint.sh /usr/local/bin/
  38. COPY docker/imgproxy-build-package /usr/local/bin/
  39. # AWS Lambda adapter
  40. COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.3 /lambda-adapter /opt/extensions/lambda-adapter
  41. COPY NOTICE /opt/imgproxy/share/doc/
  42. ENV VIPS_WARNING=0
  43. ENV MALLOC_ARENA_MAX=2
  44. ENV FONTCONFIG_PATH /etc/fonts
  45. ENV IMGPROXY_MALLOC malloc
  46. ENV AWS_LWA_READINESS_CHECK_PATH /health
  47. ENV AWS_LWA_INVOKE_MODE response_stream
  48. # Disable SVE on ARM64. SVE is slower than NEON on Amazon Graviton 3
  49. ENV VIPS_VECTOR=167772160
  50. RUN groupadd -r imgproxy \
  51. && useradd -r -u 999 -g imgproxy imgproxy \
  52. && mkdir -p /var/cache/fontconfig \
  53. && chmod 777 /var/cache/fontconfig
  54. USER 999
  55. ENTRYPOINT [ "entrypoint.sh" ]
  56. CMD ["imgproxy"]
  57. EXPOSE 8080