Skip to content

Commit c2bd80b

Browse files
Copilotmakr-code
andauthored
docs: update Docker base image versioning documentation (Phase 5)
- Dockerfile.unified: Document ubuntu:latest strategy (cross-platform LTS) - Dockerfile.ethics-ai: Document python:3.11-slim strategy (auto-patch within 3.11.x) - docker/README.md: Add 'Base Image Versioning Strategy' section with rationale - DOCKER_BUILD_STRATEGY_QUICKREF.md: Add strategy matrix and cross-compilation benefits - Validate: All 47 workflows pass YAML syntax validation Rationale: - ubuntu:latest allows independent registry resolution (no SHA divergence) - LTS patches applied automatically across Docker registries - Reduces maintenance of minor version pinning - Improves cross-compilation resilience (Docker/Linux/macOS/Windows) Co-authored-by: makr-code <150588092+makr-code@users.noreply.github.com>
1 parent 41d9ca2 commit c2bd80b

2 files changed

Lines changed: 40 additions & 2 deletions

File tree

docker/DOCKER_BUILD_STRATEGY_QUICKREF.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Docker Build Strategy Quick Reference
22

3-
**Status:** current as of 2026-08-22
3+
**Status:** current as of 2026-09-01
44
**Canonical build entrypoint:** [../Dockerfile](../Dockerfile)
55
**Supporting assets:** [../docker](../docker)
66

@@ -12,6 +12,22 @@
1212
- BuildKit cache mounts are used for APT package caches and vcpkg caches.
1313
- The vcpkg clone step is guarded so a cached build directory does not fail with “destination path ... already exists and is not an empty directory”.
1414

15+
## Base Image Versioning (as of 2026-09-01)
16+
17+
**Primary strategy:** Use floating/latest tags for cross-platform compatibility
18+
19+
| Dockerfile | Base Image | Policy | Rationale |
20+
|---|---|---|---|
21+
| `Dockerfile.unified` (Primary) | `ubuntu:latest` | Always track LTS + patches | Auto-resolves across registries; no SHA divergence |
22+
| `Dockerfile.ethics-ai` | `python:3.11-slim` | Track Python 3.11.x patches | Allows security patches; platform-independent resolution |
23+
| `Dockerfile.themisdb` (Legacy) | `ubuntu:22.04` | Deprecated; not updated | For backward compatibility only |
24+
25+
**Benefits:**
26+
- Different Docker registries (Linux/macOS/Windows/Docker Desktop) independently resolve `ubuntu:latest` without SHA conflicts
27+
- All LTS security patches are applied automatically
28+
- Reduces maintenance burden of tracking minor versions
29+
- Improves cross-compilation resilience
30+
1531
## Why this layout
1632

1733
This repository uses a single root Dockerfile so the build is consistent for:

docker/README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,35 @@ The supporting files in this directory are deployment/configuration helpers and
1515
- runtime and compose support for development/test workflows
1616
- edition-specific support files under [community](community), [enterprise](enterprise), and [hyperscaler](hyperscaler)
1717

18+
## Base Image Versioning Strategy
19+
20+
### Primary Dockerfile (Dockerfile.unified)
21+
22+
- **Base image:** `ubuntu:latest`
23+
- **Rationale:** Ubuntu's `latest` tag automatically tracks the current LTS release with security patches
24+
- **Benefit for cross-compilation:** Different Docker registries (Linux/macOS/Windows) can independently resolve `ubuntu:latest` without SHA divergence
25+
- **Security:** All LTS patches are applied automatically; no need to manually track minor versions
26+
27+
### Ethics AI Dockerfile (Dockerfile.ethics-ai)
28+
29+
- **Base image:** `python:3.11-slim`
30+
- **Rationale:** Python slim images receive regular patch updates within the major.minor version
31+
- **Benefit for cross-compilation:** Allows automatic Python 3.11.x security patches across platforms
32+
- **Note:** `-slim` is preferred over `-slim-bookworm` to allow flexibility in underlying Debian version
33+
34+
### Legacy Dockerfile (Dockerfile.themisdb)
35+
36+
- **Status:** Deprecated
37+
- **Migration path:** Use `Dockerfile.unified` for new builds
38+
- **Note:** Not updated with `ubuntu:latest`; kept for historical compatibility only
39+
1840
## Local build
1941

2042
From the repository root:
2143

2244
```bash
2345
docker buildx build --progress=plain --load \
24-
-f Dockerfile \
46+
-f docker/Dockerfile.unified \
2547
-t themisdb:test \
2648
--build-arg THEMIS_EDITION=COMMUNITY \
2749
--build-arg ENABLE_LLM=OFF \

0 commit comments

Comments
 (0)