Skip to content

fix(docker): drop procps so the combined FalkorDB image builds on trixie#1628

Open
irresi wants to merge 1 commit into
getzep:mainfrom
irresi:fix/mcp-docker-procps-trixie
Open

fix(docker): drop procps so the combined FalkorDB image builds on trixie#1628
irresi wants to merge 1 commit into
getzep:mainfrom
irresi:fix/mcp-docker-procps-trixie

Conversation

@irresi

@irresi irresi commented Jul 3, 2026

Copy link
Copy Markdown

Summary

docker build -f mcp_server/docker/Dockerfile mcp_server/ currently fails on a pristine checkout of main, because the base image falkordb/falkordb:latest no longer ships perl.

The base image moved to Debian 13 "trixie" and upstream deliberately purged perl-base to reduce CVE surface (FalkorDB/FalkorDB#1800, merged 2026-04-05). procps's post-installation script runs update-rc.d, which is a perl script (#!/usr/bin/perl), so the very first RUN apt-get install ... layer dies:

Setting up procps (2:4.0.4-9) ...
/var/lib/dpkg/info/procps.postinst: 41: update-rc.d: not found
dpkg: error processing package procps (--configure):
 installed procps package post-installation script subprocess returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (1)

This blocks every from-source build of the combined FalkorDB + MCP image. It is also a latent release blocker: the combined matrix variant of .github/workflows/release-mcp-server.yml builds this exact Dockerfile against the same unpinned :latest, so the next mcp-v* tag push would hit the same failure (the last run of that workflow was mcp-v1.0.2 on 2026-03-11, before the upstream change).

Fix

Drop procps from the apt-get install list and update the stale "Debian Bookworm / Python 3.11" note (the base is now trixie with Python 3.13).

Why this over the alternatives:

  • Nothing uses it. No script, healthcheck, compose file, workflow, or doc in the repo invokes ps/pgrep/top/etc. The container healthcheck uses redis-cli ping; start-services.sh uses redis-server, redis-cli, node, and uv only. The one in-container ps aux sighting I could find (a user debugging [BUG] FalkorDB Browser not started by MCP Server image #1041) is still covered by docker top <container> from the host or /proc inside it.
  • Reinstalling perl-base also fixes the build (verified — the apt layer then completes and ps works), but it partially undoes the base image's deliberate CVE-surface reduction just to keep a package nothing consumes. Happy to switch to that variant if you'd rather keep ps available for debugging the multi-process container.
  • Pinning the base tag doesn't help: every falkordb/falkordb tag from v4.18.0 (2026-04-07) onward is built after the perl purge; only tags ≤ v4.16.9 (2026-04-03) still ship perl, and pinning that far back would freeze FalkorDB itself.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Testing

All against falkordb/falkordb:latest at digest sha256:2496643cabd67e87fd82458383400c049324daec1fe674ba0db4c5bdaca5d25f (same digest as the issue report):

  • Reproduced the failure with the unmodified RUN line — apt-get exits 100 with the procps.postinst error above.
  • With procps removed, the same apt-get line completes with exit 0.
  • Control experiment: adding perl-base while keeping procps also builds cleanly (ps from procps-ng 4.0.4), confirming the failure is exactly the procps→update-rc.d→perl chain and nothing else in the layer.
  • Full docker build -f mcp_server/docker/Dockerfile mcp_server/ of this branch completes successfully end-to-end (including uv lock regeneration and uv sync on Python 3.13).

Breaking Changes

None to the build interface. The image no longer contains ps/top/free (procps) — repo-wide search found zero consumers.

Related Issues

Closes #1624

🤖 Generated with Claude Code

falkordb/falkordb:latest is now Debian 13 "trixie" based and no longer
ships perl (purged upstream in FalkorDB/FalkorDB#1800 to reduce CVE
surface). procps's postinst runs update-rc.d, a perl script, so the
first apt-get install layer of mcp_server/docker/Dockerfile exits 100
and every from-source build of the combined image fails.

Nothing in the repo invokes any procps tool (ps, pgrep, top, ...): the
healthcheck uses redis-cli and start-services.sh uses only redis-server,
redis-cli, node, and uv. Drop the package instead of reinstalling
perl-base, and update the stale Debian bookworm / Python 3.11 note.

Verified against falkordb/falkordb@sha256:2496643c: the unmodified apt
layer exits 100 with "procps.postinst: update-rc.d: not found"; with
procps dropped the full image builds end-to-end and the container comes
up healthy (FalkorDB PONG, MCP server serving /mcp/).

Closes getzep#1624

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@zep-cla-assistant

Copy link
Copy Markdown
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. For privacy information, see our Privacy Notice. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA behalf on myself, e-mail: example@example.com

or

I have read the CLA Document and I hereby sign the CLA behalf of my company, e-mail: example@example.com

Signature is valid for 6 months.


This bot will be retriggered when the Contributor License Agreement comment has been provided. Posted by the CLA Assistant Lite bot.

@irresi

irresi commented Jul 3, 2026

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA behalf on myself, e-mail: blueirobin02@gmail.com

@Naseem77

Copy link
Copy Markdown
Contributor

@irresi Verified this: procps postinst fails on the trixie base (needs perl/update-rc.d that were purged), and nothing in the image uses ps/pgrep. Builds clean with your change. LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docker build fails for mcp_server/docker/Dockerfile: procps postinst fails because falkordb/falkordb:latest no longer ships perl-base

2 participants