Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM --platform=linux/amd64 debian:trixie-slim

Check warning on line 3 in Dockerfile

View workflow job for this annotation

GitHub Actions / build

FROM --platform flag should not use a constant value

FromPlatformFlagConstDisallowed: FROM --platform flag should not use constant value "linux/amd64" More info: https://docs.docker.com/go/dockerfile/rule/from-platform-flag-const-disallowed/

ARG VERSION=dev
ARG GIT_SHA=unknown
Expand All @@ -26,10 +26,11 @@
# libfreetype6 — provides libfreetype.so.6 soname that bundled libharfbuzz links against
# cifs-utils — SMB/CIFS network share mounting
# ca-certificates — HTTPS for streaming services and cloud APIs
# procps — provides ps, required by RoonServer's self-update script
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
bash curl xz-utils bzip2 tzdata libicu76 \
libasound2t64 libfreetype6 cifs-utils ca-certificates \
libasound2t64 libfreetype6 cifs-utils ca-certificates procps \
Comment thread
decriptor marked this conversation as resolved.
&& (chmod u-s /usr/sbin/mount.cifs 2>/dev/null || true) \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /var/log/apt /var/log/dpkg.log \
Expand Down
13 changes: 13 additions & 0 deletions tests/smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,19 @@ for bin in bash curl bzip2 tar ffmpeg; do
docker run --rm --entrypoint which "$IMAGE" "$bin"
done

# ps (procps) is a runtime contract: RoonServer's bundled self-update
# launcher runs `ps -Awwo pid,args | grep '[R]AATServer' | awk ...` to
# kill stale RAATServer processes. A missing procps silently breaks
# updates (RRD-1551), so assert both the binary and that the pipeline runs.
check "ps is available (procps — RoonServer self-update)" \
docker run --rm --entrypoint which "$IMAGE" ps

# Exercise the exact flags the launcher uses. Checking ps's own exit code
# (not the pipeline's) is deliberate: a missing/broken ps must fail here,
# whereas the full pipeline's exit is awk's, which is 0 even when ps errors.
check "ps self-update invocation runs (ps -Awwo pid,args)" \
docker run --rm --entrypoint ps "$IMAGE" -Awwo pid,args

# FFmpeg is a static binary from johnvansickle.com — verify it actually
# executes on this image's glibc/kernel ABI, not just that the file exists.
check "ffmpeg runs (static binary ABI-compatible)" \
Expand Down
Loading