diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 2620f896..a7a9e1c0 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -2,12 +2,10 @@ name: docker build on: schedule: - - cron: "0 10 * * *" + - cron: "0 5 * * 1" push: branches: - - "**" - tags: - - "v*.*.*" + - "dev" pull_request: branches: - "dev" diff --git a/Dockerfile b/Dockerfile index 34b6c1fb..85bcdbfc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,65 +1,21 @@ -FROM debian:bookworm-slim AS builder -RUN apt-get update && \ - apt-get install --no-install-recommends -y \ - git \ - wget \ - pkg-config \ - autoconf \ - gcc \ - make \ - libusb-1.0-0-dev \ - librtlsdr-dev \ - libncurses-dev \ - zlib1g-dev \ - libzstd-dev \ - ca-certificates - -# install jemalloc -RUN JEMALLOC_BDIR=$(mktemp -d) && \ - git clone --depth 1 https://github.com/jemalloc/jemalloc $JEMALLOC_BDIR && \ - cd $JEMALLOC_BDIR && \ - ./autogen.sh && \ - ./configure --with-lg-page=14 && \ - make -j$(nproc) && \ - make install && \ - rm -rf $JEMALLOC_BDIR - -# install readsb -SHELL ["/bin/bash", "-x", "-o", "pipefail", "-c"] -RUN --mount=type=bind,source=.,target=/app/git \ - cd /app/git && \ - READSB_BUILD_DIR=$(mktemp -d) && \ - cp -r /app/git/* $READSB_BUILD_DIR && \ - cd $READSB_BUILD_DIR && \ - [[ $(uname -m) == x86_64 ]] && MARCH=" -march=nehalem" || MARCH="" && \ - make -j$(nproc) RTLSDR=yes OPTIMIZE="-O2 $MARCH" && \ - mv readsb /usr/local/bin && \ - mv viewadsb /usr/local/bin && \ - chmod +x /usr/local/bin/viewadsb /usr/local/bin/readsb && \ - make clean && \ - make -j$(nproc) PRINT_UUIDS=yes TRACKS_UUID=yes OPTIMIZE="-O2 $MARCH" && \ - mv readsb /usr/local/bin/readsb-uuid && \ - mv viewadsb /usr/local/bin/viewadsb-uuid && \ - chmod +x /usr/local/bin/viewadsb-uuid && \ - chmod +x /usr/local/bin/readsb-uuid && \ - rm -rf $READSB_BUILD_DIR && \ - mkdir -p /usr/local/share/tar1090 && \ - wget -O /usr/local/share/tar1090/aircraft.csv.gz https://github.com/wiedehopf/tar1090-db/raw/csv/aircraft.csv.gz && \ - true +FROM ghcr.io/wiedehopf/readsb-builder:latest AS builder FROM debian:bookworm-slim -RUN apt-get update && \ +RUN \ + --mount=type=bind,from=buildimage,source=/,target=/buildimage/ \ + apt-get update && \ apt-get -y install --no-install-recommends \ wget \ librtlsdr0 libncurses6 zlib1g libzstd1 && \ apt-get clean && \ + wget -O /usr/local/share/tar1090/aircraft.csv.gz https://github.com/wiedehopf/tar1090-db/raw/csv/aircraft.csv.gz && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - mkdir -p /run/readsb + mkdir -p /run/readsb && \ + cp /buildimage/usr/local/bin/readsb* /usr/local/bin/ && \ + cp /buildimage/usr/local/bin/viewadsb* /usr/local/bin/ && \ + cp /buildimage/usr/local/lib/libjemalloc.so.2 /usr/local/lib/libjemalloc.so.2 && \ + true ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so.2 -COPY --from=builder /usr/local/bin/readsb* /usr/local/bin/ -COPY --from=builder /usr/local/bin/viewadsb* /usr/local/bin/ -COPY --from=builder /usr/local/share/tar1090/aircraft.csv.gz /usr/local/share/tar1090/aircraft.csv.gz -COPY --from=builder /usr/local/lib/libjemalloc.so.2 /usr/local/lib/libjemalloc.so.2 ENTRYPOINT ["/usr/local/bin/readsb"]