diff --git a/Dockerfile b/Dockerfile index 3c914046..fddaf7da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,9 @@ FROM ubuntu:24.04 AS builder LABEL maintainer=michel.promonet@free.fr ARG USERNAME=dev -WORKDIR /webrtc-streamer -COPY . /webrtc-streamer +WORKDIR /build/webrtc-streamer + +COPY . . ENV PATH /depot_tools:$PATH @@ -17,17 +18,17 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins && fetch --no-history --nohooks webrtc \ && sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS \ && gclient sync \ - && cd /webrtc-streamer \ - && cmake . && make \ - && cpack \ - && mkdir /app && tar xvzf webrtc-streamer*.tar.gz --strip=1 -C /app/ && rm webrtc-streamer*.tar.gz \ + && cd /build/webrtc-streamer \ + && cmake -DCMAKE_INSTALL_PREFIX=/app . && make \ + && make install \ && rm -rf /webrtc/src/out \ && apt-get clean && rm -rf /var/lib/apt/lists/ # run FROM ubuntu:24.04 -WORKDIR /app +WORKDIR /app/webrtc-streamer + COPY --from=builder /app/ /app/ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libssl-dev libasound2-dev libgtk-3-0 libxtst6 libpulse0 librtmp1 avahi-utils \ diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 15e6cc32..a59dddd5 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -4,8 +4,9 @@ ARG IMAGE=arm64v8/ubuntu FROM ubuntu:24.04 AS builder LABEL maintainer=michel.promonet@free.fr -WORKDIR /webrtc-streamer -COPY . /webrtc-streamer +WORKDIR /build/webrtc-streamer + +COPY . . RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates wget git python3 python3-pkg-resources xz-utils cmake make pkg-config gcc-aarch64-linux-gnu g++-aarch64-linux-gnu build-essential \ && mkdir /webrtc \ @@ -16,17 +17,17 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins && sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS \ && src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm64 \ && gclient sync \ - && cd /webrtc-streamer \ + && cd /build/webrtc-streamer \ && cmake -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF . && make \ - && cpack \ - && mkdir /app && tar xvzf webrtc-streamer*.tar.gz --strip=1 -C /app/ \ + && make install \ && rm -rf /webrtc && rm -f *.a && rm -f src/*.o \ && apt-get clean && rm -rf /var/lib/apt/lists/ # run FROM $IMAGE -WORKDIR /app +WORKDIR /app/webrtc-streamer + COPY --from=builder /app/ /app/ ENTRYPOINT [ "./webrtc-streamer" ] diff --git a/Dockerfile.rpi b/Dockerfile.rpi index 422dc031..88f8a218 100644 --- a/Dockerfile.rpi +++ b/Dockerfile.rpi @@ -7,8 +7,9 @@ LABEL maintainer=michel.promonet@free.fr ARG ARCH=armv6l ARG CROSSCOMPILER=https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%2010.2.0/Raspberry%20Pi%201%2C%20Zero/cross-gcc-10.2.0-pi_0-1.tar.gz -WORKDIR /webrtc-streamer -COPY . /webrtc-streamer +WORKDIR /build/webrtc-streamer + +COPY . . RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates build-essential gcc wget git python3 python3-pkg-resources xz-utils cmake make pkg-config \ && mkdir /webrtc \ @@ -21,17 +22,17 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins && sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS \ && src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm \ && gclient sync \ - && cd /webrtc-streamer \ - && cmake -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_LIBRARY_ARCHITECTURE=arm-linux-gnueabihf -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF . && make \ - && cpack \ - && mkdir /app && tar xvzf webrtc-streamer*.tar.gz --strip=1 -C /app/ \ + && cd /build/webrtc-streamer \ + && cmake -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_LIBRARY_ARCHITECTURE=arm-linux-gnueabihf -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF . && make \ + && make install \ && rm -rf /webrtc && rm -f *.a && rm -f src/*.o \ && apt-get clean && rm -rf /var/lib/apt/lists/ # run FROM $IMAGE -WORKDIR /app +WORKDIR /app/webrtc-streamer + COPY --from=builder /app/ /app/ ENTRYPOINT [ "./webrtc-streamer" ] diff --git a/Dockerfile.windows b/Dockerfile.windows index 227824f8..0da1bc3a 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -36,10 +36,10 @@ RUN git config --global core.autocrlf false \ && gclient sync \ && time /t \ && cd C:\webrtc-streamer \ - && cmake -G Ninja -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe -DCMAKE_MAKE_PROGRAM=ninja.bat . \ + && cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe -DCMAKE_MAKE_PROGRAM=ninja.bat . \ && time /t \ && ninja \ - && mkdir c:\app && copy webrtc-streamer.exe c:\app && copy config.json c:\app && xcopy /E html c:\app\html\ \ + && ninja install \ && del /f /s /q c:\webrtc > nul && rmdir /s /q c:\webrtc \ && time /t @@ -48,7 +48,8 @@ RUN powershell -c "sleep -Seconds 60" && time /t # run FROM mcr.microsoft.com/windows/server:ltsc2022 -WORKDIR /app +WORKDIR /app/webrtc-streamer + COPY --from=builder /app/ /app/ RUN dir /w && set