Skip to content

Fixes to Dockerfile#443

Open
zec wants to merge 1 commit intosimonrw:mainfrom
zec:docker-update-0326
Open

Fixes to Dockerfile#443
zec wants to merge 1 commit intosimonrw:mainfrom
zec:docker-update-0326

Conversation

@zec
Copy link
Copy Markdown
Contributor

@zec zec commented Mar 27, 2026

As of earlier today, the Dockerfile failed to build for two reasons:

  • The Debian repos for buster are no longer available
  • When switching to Debian bullseye, libclang-3.8-dev is not available

This pull request fixes both by switching the base image from rust:1.60.0-slim-buster to rust:1.60.0-slim-bullseye and changing the version of libclang installed.

In addition, once the image is built, when trying to run cargo xtask test -t all, testing fails because neither Clippy nor cargo-nextest is installed in the container yet. This pull request installs them as part of the image build.

As of today, the Dockerfile failed to build for two reasons:

* The Debian repos for buster are no longer available
* When switching to Debian bullseye, libclang-3.8 is not available

This commit fixes both by switching the base image from
rust:1.60.0-slim-buster to rust:1.60.0-slim-bullseye and changing the
version of libclang we install.

In addition, once the image is built, when trying to run
`cargo xtask test -t all`, testing fails because neither Clippy nor
cargo-nextest is installed in the container yet.
This commit installs them as part of the image build.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 27, 2026

📝 Walkthrough

Walkthrough

The Dockerfile's base image has been updated from Debian Buster to Bullseye (rust:1.60.0-slim variant). The system-level clang dependency was upgraded from version 3.8 to 19. The Rust toolchain configuration was expanded with the addition of the clippy component. Additionally, cargo-nextest was installed via the stable Rust toolchain as a new development tool.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Fixes to Dockerfile' is related to the changeset and accurately describes the main purpose, though it is somewhat generic and could be more specific about what was fixed.
Description check ✅ Passed The description provides clear context for all changes, explaining the build failures, the fixes applied, and additional improvements to the container image.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Dockerfile (1)

1-33: 🧹 Nitpick | 🔵 Trivial

Consider static analysis suggestions as optional improvements.

The static analysis tools flag several issues that are lower priority for a development container:

  1. Running as root (DS-0002): For a development container with volume mounts, running as root can avoid permission issues. If security hardening is desired, consider adding a non-root user.

  2. No HEALTHCHECK (DS-0026): Not applicable for development containers that aren't long-running services.

  3. Unpinned apt packages (DL3008): Version pinning improves reproducibility but adds maintenance burden. Consider pinning critical packages like libclang if build stability becomes an issue.

These are acceptable trade-offs for a development environment but worth noting for future hardening.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Dockerfile` around lines 1 - 33, Static analysis flagged optional
dev-container issues: running as root, missing HEALTHCHECK, and unpinned apt
packages; to address them (optionally) create a non-root user and chown the
workspace (add a user/ group and adjust VOLUME ["/project"] / WORKDIR "/project"
ownership and switch to that user), add a lightweight HEALTHCHECK instruction if
you want runtime liveness feedback, and pin critical packages by specifying
exact versions for apt installs (e.g., replace libclang-19-dev in the RUN
apt-get install ... lines with a version-pinned package or add an apt
pin/apt-transport mechanism) so builds are more reproducible.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@Dockerfile`:
- Around line 1-33: Static analysis flagged optional dev-container issues:
running as root, missing HEALTHCHECK, and unpinned apt packages; to address them
(optionally) create a non-root user and chown the workspace (add a user/ group
and adjust VOLUME ["/project"] / WORKDIR "/project" ownership and switch to that
user), add a lightweight HEALTHCHECK instruction if you want runtime liveness
feedback, and pin critical packages by specifying exact versions for apt
installs (e.g., replace libclang-19-dev in the RUN apt-get install ... lines
with a version-pinned package or add an apt pin/apt-transport mechanism) so
builds are more reproducible.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 199dc8a9-0aa0-4108-acba-eb2f68a43616

📥 Commits

Reviewing files that changed from the base of the PR and between e5b305a and 95d091c.

📒 Files selected for processing (1)
  • Dockerfile

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.

1 participant