Axiom Refract + Docker

Axiom Refract analyzes Dockerfiles and container configurations as part of your architectural record

How It Works

1

Include Dockerfiles in Your Repository

Ensure your Dockerfiles, docker-compose.yml files, and related container configurations are committed to the repository being scanned.

2

Run Standard Scan

Trigger a standard Axiom scan. Docker and container files are automatically detected and included in the analysis — no special configuration required.

3

Review Infrastructure Findings

Access infrastructure-specific findings in the architectural record. Dockerfiles appear in the dependency graph alongside the application code they containerize.

4

Analyze Container Relationships

Review how Docker Compose service definitions map to application components. Multi-stage build dependencies and service interconnections are reflected in the architectural graph.

What You Can Do

Dockerfile Parsing

Axiom parses Dockerfiles to extract base image dependencies, multi-stage build relationships, and COPY/ADD source references that connect container definitions to application code.

Docker Compose Service Mapping

Axiom parses docker-compose.yml files to map service definitions, inter-service dependencies, volume mounts, and network configurations as architectural relationships.

Infrastructure-Application Coupling

Docker configurations that reference application code create architectural dependencies between infrastructure and application layers. Axiom maps these cross-layer relationships.

Base Image Tracking

Track which base images your containers depend on and identify where base image updates would affect your container build chain.

Setup

No special configuration is needed. Axiom automatically detects and parses Dockerfiles, docker-compose.yml, and related container configuration files when they are present in the scanned repository. Infrastructure findings appear alongside application code findings in the architectural record.

# Example Dockerfile analyzed by Axiom
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/main.js"]

# Axiom parses this Dockerfile and identifies:
# - Base image dependency: node:20-alpine
# - Multi-stage build relationship: builder -> runtime
# - Application code reference: COPY . .
# - Entry point: dist/main.js

Why This Matters

Container configurations are architecture. The Dockerfile that builds your service, the docker-compose.yml that defines your development environment, and the Kubernetes manifests that deploy your production system are all structural components that affect how your application is built, deployed, and operated. Axiom treats infrastructure definitions as first-class architectural elements.