Dockerfile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. FROM debian:bullseye-slim
  2. RUN apt-get -qq update \
  3. && apt-get install -y --no-install-recommends \
  4. bash \
  5. curl \
  6. git \
  7. ca-certificates \
  8. build-essential \
  9. ninja-build \
  10. python3-pip \
  11. libglib2.0-dev \
  12. libxml2-dev \
  13. libjpeg-dev \
  14. libpng-dev \
  15. libwebp-dev \
  16. librsvg2-dev \
  17. libexif-dev \
  18. liblcms2-dev \
  19. libavcodec-dev \
  20. libavformat-dev \
  21. libavutil-dev \
  22. libswscale-dev \
  23. libopencv-core-dev \
  24. libopencv-imgproc-dev \
  25. libopencv-objdetect-dev \
  26. libopencv-dnn-dev \
  27. && pip install --force meson \
  28. && rm -rf /var/lib/apt/lists/*
  29. RUN \
  30. mkdir /root/vips \
  31. && cd /root/vips \
  32. && curl -s -S -L -o vips_releases.json "https://api.github.com/repos/libvips/libvips/releases" \
  33. && for VIPS_VERSION in "8.13" "8.14"; do \
  34. mkdir $VIPS_VERSION \
  35. && export VIPS_RELEASE=$(grep -m 1 "\"tag_name\": \"v$VIPS_VERSION." vips_releases.json | sed -E 's/.*"v([^"]+)".*/\1/') \
  36. && echo "Building Vips $VIPS_RELEASE as $VIPS_VERSION" \
  37. && curl -s -S -L -o libvips-$VIPS_RELEASE.tar.gz https://github.com/libvips/libvips/archive/refs/tags/v$VIPS_RELEASE.tar.gz \
  38. && tar -xzf libvips-$VIPS_RELEASE.tar.gz \
  39. && cd libvips-$VIPS_RELEASE \
  40. && meson setup _build \
  41. --buildtype=release \
  42. --strip \
  43. --prefix=/root/vips/$VIPS_VERSION \
  44. --libdir=lib \
  45. -Dgtk_doc=false \
  46. -Dintrospection=false \
  47. && ninja -C _build \
  48. && ninja -C _build install \
  49. && cd .. \
  50. && rm -rf libvips-$VIPS_RELEASE.tar.gz libvips-$VIPS_RELEASE; \
  51. done
  52. RUN echo "Name: OpenCV\n" \
  53. "Description: Open Source Computer Vision Library\n" \
  54. "Version: 4.5.1\n" \
  55. "Libs: -L/usr/lib/x86_64-linux-gnu -lopencv_dnn -lopencv_objdetect -lopencv_imgproc -lopencv_core\n" \
  56. "Libs.private: -ldl -lm -lpthread -lrt\n" \
  57. "Cflags: -I/usr/include/opencv4\n" \
  58. > /usr/lib/x86_64-linux-gnu/pkgconfig/opencv4.pc
  59. WORKDIR /go/src
  60. ENTRYPOINT [ "/bin/bash" ]