Switch Squid image to Alpine to remove Berkeley DB/Sleepycat components#6507
Conversation
There was a problem hiding this comment.
Pull request overview
Switches the Squid runtime from Ubuntu to Alpine to eliminate Berkeley DB lineage while preserving AWF’s runtime contract.
Changes:
- Installs Squid and runtime utilities using
apk. - Attempts to preserve the proxy UID/GID 13 contract.
- Updates architecture documentation.
Show a summary per file
| File | Description |
|---|---|
containers/squid/Dockerfile |
Replaces Ubuntu Squid with Alpine packages. |
docs/architecture.md |
Documents the Alpine-based Squid image. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 2
- Review effort level: Medium
| if getent group proxy >/dev/null 2>&1; then \ | ||
| groupmod -g 13 proxy; \ | ||
| else \ | ||
| addgroup -S -g 13 proxy; \ |
| @@ -1,66 +1,30 @@ | |||
| FROM ubuntu/squid:latest | |||
| FROM alpine:3.24 | |||
|
@copilot address review feedback |
- Dockerfile: remove Alpine 'news' account (GID 13) before creating proxy at UID/GID 13 using shadow-utils userdel/groupdel + groupadd/useradd - Add .github/workflows/test-squid-image.yml that builds the squid image for both linux/amd64 and linux/arm64 on every PR touching containers/squid/** and asserts: no Berkeley DB/Sleepycat packages, no libdb*.so* shared libraries, proxy user at UID 13, proxy group at GID 13, squid binary present
Both review issues are addressed in commit UID/GID 13 conflict ( Multi-arch image validation (
|
|
📰 VERDICT: Smoke Docker Sbx has concluded. All systems operational. This is a developing story. 🎤 |
|
🛡️ Smoke Copilot Network Isolation confirmed the egress allowlist is enforced. ✅ |
|
❌ Security Guard failed. Please review the logs for details. |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
✅ Smoke Claude passed |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✅ Contribution Check completed successfully! Contribution check complete: the PR includes a clear description with issue reference, updates architecture docs, adds a validation workflow for the Squid image change, and keeps the new workflow file in the expected CI location. No guideline issues found. |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
|
Smoke Test: Copilot BYOK (Direct) — PASS
Running in direct BYOK mode (
|
🔍 Smoke Test Results — Auth mode: PAT (COPILOT_GITHUB_TOKEN)
Overall: PARTIAL — MCP auth confirmed; pre-computed step outputs were not injected into the prompt (template substitution issue in workflow). cc
|
🔥 Smoke Test: Copilot Network Isolation Egress Enforcement
Overall status: PASS
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "example.com"See Network Configuration for more information.
|
Smoke Test: Claude Engine Validation
Overall result: ✅ PASS
|
🔬 Smoke Test Results
Overall: PARTIAL — MCP connectivity confirmed. Pre-computed test data unavailable due to unexpanded workflow template variables ( PR author:
|
Smoke Test: Services Connectivity
Overall: FAIL —
|
Gemini Smoke Test Results
Overall status: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
|
Running in direct BYOK mode (AWF_AUTH_TYPE=github-oidc + AWF_AUTH_AZURE_* + COPILOT_PROVIDER_BASE_URL) via api-proxy → Azure OpenAI (Foundry, o4-mini-aw) authenticated via Microsoft Entra Overall: PASS
|
🔬 Smoke Test: API Proxy OpenTelemetry Tracing
Summary: All 6 scenarios pass. The OTEL integration is fully implemented with 59 passing tests covering span creation, token attributes (GenAI semantic conventions), parent context propagation, OTLP export via Squid proxy, fan-out multi-endpoint support, and graceful fallback to file export.
|
🧪 Chroot Version Smoke Test Results
All tests passed — chroot environment versions match the host.
|
This comment has been minimized.
This comment has been minimized.
|
Smoke test results:
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "registry.npmjs.org"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS
|
|
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY + COPILOT_PROVIDER_BASE_URL) via api-proxy → Azure OpenAI (Foundry, o4-mini-aw) PASS
|
🔥 Smoke Test: Docker Sbx Validation
Overall: PASS
|
AWF’s published Squid image inherited Ubuntu’s Berkeley DB (
libdb5.3t64/libdb-5.3.so) transitively, which causes enterprise license-governance rejection despite not being a direct Squid runtime dependency. This PR moves the Squid image build to an Alpine-based runtime to eliminate that package lineage while preserving AWF’s Squid runtime contract.Image base + package graph
ubuntu/squid:latestwithalpine:3.24incontainers/squid/Dockerfile.aptmirror/retry/install logic and installed Squid + required runtime utilities viaapk.Runtime compatibility retained
proxyownership of/var/log/squid,/var/spool/squid,/var/run/squid, and/etc/squid.bash+shadow.proxyuser/group UID/GID =13to maintain existing ownership expectations (including ARC/DinD log-dir behavior).Documentation alignment
docs/architecture.mdto reflect the Squid container’s Alpine base.