Skip to content

Commit

Permalink
docker: download files first to hopefully not break cache
Browse files Browse the repository at this point in the history
Signed-off-by: deadprogram <[email protected]>
  • Loading branch information
deadprogram committed Oct 19, 2024
1 parent 0af2199 commit 151b46a
Showing 1 changed file with 34 additions and 30 deletions.
64 changes: 34 additions & 30 deletions Dockerfile.opencv-static-alpine
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,27 @@
# To build release:
# docker buildx build -f Dockerfile.opencv-static-alpine -t ghcr.io/hybridgroup/opencv:4.10-alpine --platform=linux/arm64,linux/amd64 --load .

FROM --platform=linux/amd64 ghcr.io/hybridgroup/gstreamer:1.24-alpine AS gstreamer-amd64
# linux/amd64 build

FROM --platform=linux/arm64 ghcr.io/hybridgroup/gstreamer:1.24-alpine AS gstreamer-arm64
FROM --platform=linux/amd64 ghcr.io/hybridgroup/gstreamer:1.24-alpine AS gstreamer-amd64

# Stage 1: Build OpenCV
FROM --platform=linux/amd64 ghcr.io/hybridgroup/ffmpeg:5.16-alpine AS builder-amd64

# Set OpenCV version
ARG OPENCV_VERSION=4.10.0

# Download OpenCV source code
WORKDIR /opencv
RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv.zip && \
mv opencv-${OPENCV_VERSION} opencv

WORKDIR /opencv_contrib
RUN wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv_contrib.zip && \
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib

# Install dependencies
RUN apk update && apk add --no-cache \
build-base \
Expand Down Expand Up @@ -40,20 +54,6 @@ RUN apk update && apk add --no-cache \
COPY --from=gstreamer-amd64 /gstbin/lib /usr/local/lib
COPY --from=gstreamer-amd64 /gstbin/include/gstreamer-1.0/gst /usr/local/include/gst

# Set OpenCV version
ARG OPENCV_VERSION=4.10.0

# Download OpenCV source code
WORKDIR /opencv
RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv.zip && \
mv opencv-${OPENCV_VERSION} opencv

WORKDIR /opencv_contrib
RUN wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv_contrib.zip && \
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib

# Build OpenCV
WORKDIR /opencv/opencv/build
RUN cmake -D CMAKE_BUILD_TYPE=Release \
Expand Down Expand Up @@ -94,8 +94,26 @@ RUN cmake -D CMAKE_BUILD_TYPE=Release \
make -j$(nproc) && \
make install


# linux/arm64 build
FROM --platform=linux/arm64 ghcr.io/hybridgroup/gstreamer:1.24-alpine AS gstreamer-arm64

FROM --platform=linux/arm64 ghcr.io/hybridgroup/ffmpeg:5.16-alpine AS builder-arm64

# Set OpenCV version
ARG OPENCV_VERSION=4.10.0

# Download OpenCV source code
WORKDIR /opencv
RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv.zip && \
mv opencv-${OPENCV_VERSION} opencv

WORKDIR /opencv_contrib
RUN wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv_contrib.zip && \
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib

# Install dependencies
RUN apk update && apk add --no-cache \
build-base \
Expand Down Expand Up @@ -126,20 +144,6 @@ RUN apk update && apk add --no-cache \
COPY --from=gstreamer-arm64 /gstbin/lib /usr/local/lib
COPY --from=gstreamer-arm64 /gstbin/include/gstreamer-1.0/gst /usr/local/include/gst

# Set OpenCV version
ARG OPENCV_VERSION=4.10.0

# Download OpenCV source code
WORKDIR /opencv
RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv.zip && \
mv opencv-${OPENCV_VERSION} opencv

WORKDIR /opencv_contrib
RUN wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
unzip -q opencv_contrib.zip && \
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib

# Build OpenCV
WORKDIR /opencv/opencv/build
RUN cmake -D CMAKE_BUILD_TYPE=Release \
Expand Down

0 comments on commit 151b46a

Please sign in to comment.