Skip to content

Commit

Permalink
docker: use separate repo for builder
Browse files Browse the repository at this point in the history
this avoids unnecessary caching / rebuilds
  • Loading branch information
wiedehopf committed Aug 18, 2024
1 parent e174999 commit b638b4b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 39 deletions.
10 changes: 4 additions & 6 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -21,8 +19,8 @@ jobs:
- name: Set variables useful for later
id: useful_vars
run: |-
echo "::set-output name=timestamp::$(date +%s)"
echo "::set-output name=short_sha::${GITHUB_SHA::8}"
echo "name=timestamp::$(date +%s)" >> $GITHUB_OUTPUT
echo "name=short_sha::${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
Expand Down
43 changes: 10 additions & 33 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,30 +1,5 @@
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
FROM ghcr.io/wiedehopf/readsb-builder:latest AS builder

# 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 && \
Expand All @@ -48,18 +23,20 @@ RUN --mount=type=bind,source=.,target=/app/git \
true

FROM debian:bookworm-slim
RUN apt-get update && \
RUN \
--mount=type=bind,from=builder,source=/,target=/builder/ \
apt-get update && \
apt-get -y install --no-install-recommends \
wget \
librtlsdr0 libncurses6 zlib1g libzstd1 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
mkdir -p /run/readsb
mkdir -p /run/readsb && \
cp /builder/usr/local/bin/readsb* /usr/local/bin/ && \
cp /builder/usr/local/bin/viewadsb* /usr/local/bin/ && \
cp /builder/usr/local/share/tar1090/aircraft.csv.gz /usr/local/share/tar1090/aircraft.csv.gz && \
cp /builder/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"]

0 comments on commit b638b4b

Please sign in to comment.