惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
D
Docker
博客园 - 聂微东
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
量子位
宝玉的分享
宝玉的分享
博客园 - 司徒正美
The Cloudflare Blog
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC

RapidFort Blog

Introducing a Bazel Ruleset for RapidFort’s deb-based Images RapidFort Joins Akrites: A Coordinated Response to the Open-Source Vulnerability Crisis DORA Is Not About Compliance. It Is About Resilience. Risk Over Compliance: What CISA RapidFort Test Blog Blog 4 Test Test Blog 3 Test 2 Mythos Vulnerability Assessment: Eliminate Real Risk, Not Just CVEs Securing Modern AI Workloads for National Security RBOM vs SBOM: The Critical Difference Between Software Inventory and Runtime Reality The Remediation Gap: When AI-Powered Discovery Outpaces Human Defense You Only Control 15% of Your Software. Here's How to Secure the Rest. Free ATO Readiness Cohort: Shorten Your Path to Federal Market US Cyber Strategy & Software Supply Chain Security EU CRA for Containers & Kubernetes: Scope, Deadlines & Steps PyPI, npm, and the New Frontline of Software Supply Chain Attacks GitHub Actions Security Audit: CI/CD Risk & Shell Injection What Is RBOM™? Runtime Bill of Materials vs SBOM Explained EU Cyber Resilience Act & Open Source Risk RapidFort Raises $42M Series A for Software Supply Chain Security Fintech Container Security 2026: SASM & RBOM™ RF Analyzer: Precision Container CVE Intelligence Kimia: Secure Kaniko Alternative for Kubernetes Builds AI-Powered Cyberattacks: How Defenders Must Adapt RapidFort Pioneered DoD Container Hardening | Industry Standard Turn Scanner Output into Verified CVE Elimination RapidFort's Giant Washing Machine: Cleaning Open Source at Scale Why SBOMs Fail: RBOM™ & Near-Zero CVE Images Fix the Gap Defeat NPM Supply Chain Worms: Near-Zero CVE Defense
How to Use RapidFort’s Curated Distroless Language Images
Jacob Mammoliti · 2026-07-17 · via RapidFort Blog

RapidFort provides curated container images for popular programming languages and runtimes, including Java, Node.js, Python, and others. These images are available across commonly used Linux distributions, allowing organizations to adopt more secure base images without moving away from familiar operating system ecosystems.

Traditional Linux distributions include many packages and utilities that are useful in general-purpose environments but unnecessary for running a containerized application. These unused components can increase image size, expand the attack surface, and generate vulnerability findings that are unrelated to the application itself.

To address this, RapidFort also provides distroless variants for supported languages and runtimes. These images follow a minimal runtime architecture and exclude components that are not required in production, such as:

  • shells
  • package managers
  • build tools
  • common command-line utilities
  • other unnecessary operating system components

The result is a smaller, purpose-built runtime image with fewer packages and a reduced attack surface.

Why Migrating to Distroless Images Can Be Challenging

Distroless images provide clear security and operational benefits, but migrating an existing application can require changes to the container build process.

Traditional Dockerfiles often use distribution package managers such as apt, yum, or dnf to install dependencies. They may also rely on a shell or common Linux utilities such as useradd, cp, or chmod during the build.

These tools are intentionally absent from distroless images. As a result, commands that work in a conventional base image cannot be executed directly in the final distroless image.

The solution is to separate the build environment from the runtime environment.

Overcoming the Distroless Migration Barrier

RapidFort provides complementary image variants that allow teams to maintain a familiar build process while producing a minimal final container image:

  • Development image: Includes a shell, package manager, and the tools required to build an application and install its dependencies.
  • Distroless runtime image: Contains the language runtime and the components required to run the application, without unnecessary development and operating system utilities.

Using these images together in a multi-stage build allows you to compile the application, install dependencies, and prepare runtime artifacts in the development image. You can then copy only the required files into the distroless image.

Using a Multi-Stage Build

The following example shows a traditional single-stage Dockerfile for a Python Flask application:

FROM rapidfort/python:3.14-noble-rfcurated

WORKDIR /app

RUN python -m venv /opt/venv

ENV PATH="/opt/venv/bin:$PATH" \
    PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1

COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt

COPY --chown=1000:1000 src ./src

USER 1000:1000

EXPOSE 8000

CMD ["python", "src/main.py"]

This image can run the application, but it also retains the shell, package manager, pip, and other components used during the build.

The Dockerfile can instead be divided into separate build and runtime stages.

# =================== Build Stage ===================
FROM rapidfort/python:3.14-noble-rfcurated AS builder

RUN python -m venv /opt/venv

ENV PATH="/opt/venv/bin:$PATH"

COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt

# ================== Runtime Stage ==================
FROM rapidfort/python:3.14-noble-rfcurated

WORKDIR /app

ENV PATH="/opt/venv/bin:$PATH" \
    PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1

COPY --chown=1000:1000 src ./src
COPY --from=builder --chown=1000:1000 /opt/venv /opt/venv

USER 1000:1000

EXPOSE 8000

CMD ["python", "src/main.py"]

In this example, the first stage uses the RapidFort curated development image to create a virtual environment and install the application's Python dependencies.

The final stage starts from the RapidFort distroless runtime image. It receives only the virtual environment and application source code required to run the application. Build-time components such as the shell, package manager, and installation tools are not carried into the production image.

Conclusion

Multi-stage builds make it possible to use familiar development tools without carrying them into production.

By using a RapidFort curated development image for the build stage and a matching distroless image for the runtime stage, teams can create smaller production containers with fewer unnecessary packages, a reduced attack surface, and fewer vulnerability findings from components the application does not use.

Explore RapidFort Curated Images

Browse the full library of curated and distroless images across languages and runtimes, drop-in compatible with your existing build process and package managers, no code changes required.

Explore Curated Images