sillsdev / sillsdev/TheCombine

Investigate using Docker Hardened Images

Open
#4,252 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
22
Forks
10
Avg merge
2d 2h
Merged PRs (30d)
9

Description

GH Copilot says these are the DHIs we could consider using:

Searched for files matching **/Dockerfile*, 5 matches
Searched for regex ^FROM (**/Dockerfile*), 8 results
Fetched https://www.docker.com/products/hardened-images/
Fetched https://hub.docker.com/hardened-images/catalog

Yes — four of the six distinct base images have direct DHI equivalents. Here's the rundown:

Dockerfile Current image DHI equivalent Notes
Dockerfile (builder) mcr.microsoft.com/dotnet/sdk:8.0.416-jammy dhi/dotnet Alpine/Debian, CIS/FIPS/STIG
Dockerfile (runtime) mcr.microsoft.com/dotnet/aspnet:8.0.22-jammy dhi/aspnetcore Alpine/Debian, CIS/FIPS/STIG
Dockerfile (frontend builder) node:22.21.1-bookworm-slim dhi/node Alpine/Debian, CIS/FIPS/STIG, Extended Lifecycle Support
Dockerfile (nginx runtime) nginx:1.29.4 dhi/nginx Alpine/Debian, CIS/FIPS/STIG, Extended Lifecycle Support
Dockerfile / Dockerfile python:3.12.12-slim-bookworm dhi/python Alpine/Debian, CIS/FIPS/STIG, Extended Lifecycle Support
Dockerfile mongo:7.0.30-jammy dhi/mongodb linux/amd64 only (no arm64) — check your deployment arch
Dockerfile public.ecr.aws/thecombine/aws-kubectl:0.4.2 ❌ No DHI equivalent Custom project image; not replaceable

A few notes on adopting DHI:

  • Drop-in replacement: DHI advertises these as drop-in swaps — change the FROM line and update the digest. However, the tag scheme differs (DHI uses its own versioning), so you'd need to verify the exact tag and re-pin the digest.
  • MongoDB architecture caveat: The DHI MongoDB image only supports linux/amd64, so if your deployment includes arm64 nodes, you'd need to stick with the upstream image.
  • Microsoft images: mcr.microsoft.com/dotnet/* are already maintained by Microsoft with security patching. Switching to DHI equivalents adds near-zero-CVE SBOMs and SLSA Build L3 provenance, but isn't strictly necessary if you trust Microsoft's cadence.
  • Builder-only stages: The node and python (in Dockerfile) and dotnet/sdk images are only used in multi-stage build stages — they never ship to production — so the security benefit of hardening them is lower than for the runtime stages (nginx, aspnetcore).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the five Dockerfile* matches and the eight FROM lines identified in the issue. Compare the relevant DHI tags and digest-pinning requirements, then check runtime versus builder stages and the MongoDB linux/amd64 limitation. Done means documenting a justified image-by-image recommendation, including cases where the current image should remain.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
devops, infrastructure, security
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.