add listener dockerfile
This commit is contained in:
@@ -1 +1,3 @@
|
||||
server/.env
|
||||
listener/target
|
||||
listener/config.toml
|
||||
@@ -0,0 +1,36 @@
|
||||
################################################################################
|
||||
# App builder stage
|
||||
FROM rust:1.96.0-trixie@sha256:fb328f0f58becb23ba1719940a2c94ece8b0b48afa837d05b79ef64bc1e18f6e AS app-builder
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y --no-install-recommends libclang-dev cmake protobuf-compiler
|
||||
|
||||
COPY listener/ /opt/listener
|
||||
COPY server/proto /opt/server/proto
|
||||
WORKDIR /opt/listener
|
||||
|
||||
RUN cargo build --release
|
||||
|
||||
################################################################################
|
||||
# FFmpeg builder stage
|
||||
FROM debian:13-slim@sha256:b6e2a152f22a40ff69d92cb397223c906017e1391a73c952b588e51af8883bf8 AS ffmpeg-builder
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends ffmpeg
|
||||
RUN mkdir -p /rootfs/bin && \
|
||||
cp /usr/bin/ffmpeg /usr/bin/ffprobe /rootfs/bin/ && \
|
||||
{ ldd /usr/bin/ffmpeg; ldd /yt-dlp; } 2>/dev/null | \
|
||||
grep -o '/[^ ]*' | sort -u | \
|
||||
xargs -I '{}' cp --parents '{}' /rootfs && \
|
||||
LIBDIR=$(dirname "$(find /rootfs -name 'libc.so.6' | head -1)") && \
|
||||
for stub in libutil.so.1 libdl.so.2 libpthread.so.0 librt.so.1; do \
|
||||
[ -f "${LIBDIR}/${stub}" ] || ln -sf libc.so.6 "${LIBDIR}/${stub}"; \
|
||||
done
|
||||
|
||||
################################################################################
|
||||
# Final squashed image
|
||||
FROM gcr.io/distroless/cc-debian13 AS final
|
||||
|
||||
# Copy listener library
|
||||
COPY --from=ffmpeg-builder /rootfs/ /
|
||||
COPY --from=app-builder /opt/listener/target/release/scannerbot-listener /bin/
|
||||
ENTRYPOINT ["/bin/scannerbot-listener"]
|
||||
Reference in New Issue
Block a user