From b6fce8f0bb715fb7006a0ea57e1d7afc5e021788 Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Fri, 30 Jun 2023 15:28:48 +0300 Subject: [PATCH] Integrate ccache into libusb and nginx build scripts for improved build speed (#6886) * Add ccache to libusb and nginx build scripts * Add ccache support to Dockerfile for faster builds * Add ccache to PATH and use it for compiling nginx with Makefile in build_nginx.sh script --- Dockerfile | 11 ++++++++--- docker/build_nginx.sh | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 058bb6ad7..6db81e46b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,10 +18,13 @@ WORKDIR /rootfs FROM base AS nginx ARG DEBIAN_FRONTEND +ENV CCACHE_DIR /root/.ccache +ENV CCACHE_MAXSIZE 2G # bind /var/cache/apt to tmpfs to speed up nginx build RUN --mount=type=tmpfs,target=/tmp --mount=type=tmpfs,target=/var/cache/apt \ --mount=type=bind,source=docker/build_nginx.sh,target=/deps/build_nginx.sh \ + --mount=type=cache,target=/root/.ccache \ /deps/build_nginx.sh FROM wget AS go2rtc @@ -61,14 +64,16 @@ RUN mkdir /models \ FROM wget as libusb-build ARG TARGETARCH ARG DEBIAN_FRONTEND +ENV CCACHE_DIR /root/.ccache +ENV CCACHE_MAXSIZE 2G # Build libUSB without udev. Needed for Openvino NCS2 support WORKDIR /opt -RUN apt-get update && apt-get install -y unzip build-essential automake libtool -RUN wget -q https://github.com/libusb/libusb/archive/v1.0.25.zip -O v1.0.25.zip && \ +RUN apt-get update && apt-get install -y unzip build-essential automake libtool ccache +RUN --mount=type=cache,target=/root/.ccache wget -q https://github.com/libusb/libusb/archive/v1.0.25.zip -O v1.0.25.zip && \ unzip v1.0.25.zip && cd libusb-1.0.25 && \ ./bootstrap.sh && \ - ./configure --disable-udev --enable-shared && \ + ./configure CC='ccache gcc' CCX='ccache g++' --disable-udev --enable-shared && \ make -j $(nproc --all) RUN apt-get update && \ apt-get install -y --no-install-recommends libusb-1.0-0-dev && \ diff --git a/docker/build_nginx.sh b/docker/build_nginx.sh index fd1432f32..1e7bfad21 100755 --- a/docker/build_nginx.sh +++ b/docker/build_nginx.sh @@ -15,6 +15,10 @@ apt-get -yqq build-dep nginx apt-get -yqq install --no-install-recommends ca-certificates wget update-ca-certificates -f +apt install -y ccache + +export PATH="/usr/lib/ccache:$PATH" + mkdir /tmp/nginx wget -nv https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz tar -zxf nginx-${NGINX_VERSION}.tar.gz -C /tmp/nginx --strip-components=1 @@ -62,5 +66,5 @@ cd /tmp/nginx --add-module=../nginx-rtmp-module \ --with-cc-opt="-O3 -Wno-error=implicit-fallthrough" -make -j$(nproc) && make install +make CC="ccache gcc" -j$(nproc) && make install rm -rf /usr/local/nginx/html /usr/local/nginx/conf/*.default