Skip to content

feat(base): reduce image size ~210-280 MB; add smoke-base test#53

Merged
alexrf45 merged 1 commit into
mainfrom
base-image-reduce
Apr 3, 2026
Merged

feat(base): reduce image size ~210-280 MB; add smoke-base test#53
alexrf45 merged 1 commit into
mainfrom
base-image-reduce

Conversation

@alexrf45

@alexrf45 alexrf45 commented Apr 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove GUI desktop stack (firefox-esr, kali-themes, X11 utilities, mousepad, xpdf, feh, dbus-x11, autocutsel) and the bundled Firefox profile from resources/mozilla/ — largest single win (~150–200 MB compressed)
  • Remove unused system packages from base_system(): cmake, libpcap-devlibpcap0.8, supervisor, openssh-server, rpcbind, nfs-common, man-db, djvulibre-bin (~40–50 MB)
  • Replace apt-installed binaries with direct downloads: starship via install.sh in 3-home.sh (matches scenario image pattern), mkcert v1.4.4 via wget in 1-tools.sh; remove pipx and python3-virtualenvpython3-venv (~12 MB)
  • Also includes the docker-build-fix changes: apt-get update added to 0-base.sh, web() function converted from apt to direct downloads (ffuf, hurl, sqlmap, whatweb, exiftool, mycli, pgcli)
  • Includes web UI enhancements: container IP/project label, start stopped containers, TLS, file transfer, themes, background script runner + jobs panel
  • Includes scenario-specific Docker images (web/ad/ctf) with smoke tests
  • Fix notepad alias → nvim notes.md, py-list alias → pip3 list, virtual_env()python3 -m venv
  • Add tests/smoke-base.sh (67 checks including regression guards: firefox/mousepad/cmake/supervisord must be absent); add smoke-base target to Makefile; include in test-all

Test plan

  • make build-base — succeeded, all 9 layers built cleanly
  • make smoke-base — 67/67 passed, 0 failed
  • make test-all (scenario images) — web 31/31, ad 25/25, ctf 24/24 all passing

🤖 Generated with Claude Code

Remove GUI desktop stack (firefox-esr, kali-themes, x11, mousepad,
xpdf, feh, dbus-x11, autocutsel) and associated firefox profile from
resources/. Removes ~150-200 MB compressed.

Remove unused build/system packages from base_system(): cmake,
libpcap-dev (→ libpcap0.8), supervisor, openssh-server, rpcbind,
nfs-common, man-db, djvulibre-bin.

Replace apt-installed starship and mkcert with binary downloads:
starship via install.sh in 3-home.sh (consistent with scenario images),
mkcert v1.4.4 via wget in 1-tools.sh extras(). Remove pipx and
python3-virtualenv from base_languages(); add python3-venv.

Update resources/zsh/aliases: notepad → nvim, py-list → pip3 list.
Update resources/zsh/functions.sh: virtual_env() uses python3 -m venv.

Add tests/smoke-base.sh with 67 checks across environment, core tools,
network/pentest/AD/OSINT tools, binary tools, tool files, and regression
guards (firefox/mousepad/supervisord/cmake must be absent). Update
Makefile: add smoke-base target, include in test-all.
@alexrf45 alexrf45 merged commit c6dc724 into main Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant