Skip to content

Conversation

@CorbettCajun
Copy link

…Yarn: use NodeSource Node 20, install yarn+retire via npm\n- Wappalyzer: install CLI via npm, update configured path\n- Git clones: add shallow clones with retries (nuclei-templates, testssl.sh)\n- Compose: remove obsolete top-level version key\n- Base image: switch to python:3.12 for lxml wheel compatibility

…Yarn: use NodeSource Node 20, install yarn+retire via npm\n- Wappalyzer: install CLI via npm, update configured path\n- Git clones: add shallow clones with retries (nuclei-templates, testssl.sh)\n- Compose: remove obsolete top-level version key\n- Base image: switch to python:3.12 for lxml wheel compatibility
@CorbettCajun
Copy link
Author

Summary
This PR fixes the full Docker build and removes Docker Compose deprecation warnings.

Ensures RetireJS, Node.js, and Yarn install reliably
Installs Wappalyzer via npm instead of cloning
Hardens network-dependent git clones with shallow clone + retry
Switches base image to Python 3.12 to avoid lxml build errors
Removes obsolete version key from docker-compose files
Changes
Docker
Dockerfile.full
Use NodeSource Node.js 20, install Yarn + RetireJS via npm
Install Wappalyzer CLI via npm; update SpiderFoot path to /usr/local/bin/wappalyzer
Add shallow clone with retries for nuclei-templates and testssl.sh
Switch base image from python:3 (3.13) to python:3.12 for lxml<5 wheel compatibility
docker-compose.yml
,
docker-compose-full.yml
Remove top-level version key (obsolete in Compose v2)
Rationale
Previous build failed at:
Removing nonexistent cmdtest package and using deprecated apt-key for Yarn
Cloning Wappalyzer via HTTPS (prompted for GitHub auth in some environments)
lxml built from source under Python 3.13 (no compatible wheels), resulting in compile errors
Updates:
Node/Yarn/RetireJS via npm avoids deprecated apt flows
Wappalyzer via npm avoids git cloning and Yarn workspace linking
Python 3.12 base image unlocks prebuilt lxml<5 wheels
Retry logic reduces transient GitHub clone failures
Compose warnings removed for cleaner DX
Files Changed
Dockerfile.full
docker-compose.yml
docker-compose-full.yml
How to Test
Build and run the full image:
docker compose -f docker-compose.yml -f docker-compose-full.yml up --build
Verify the app comes up at http://localhost:5001.
Confirm the following tools are available inside the container:
RetireJS: retire --version
Wappalyzer: wappalyzer --version
Nuclei binary exists: /tools/nuclei
Templates present: /tools/nuclei-templates
testssl.sh present: /tools/testssl.sh/testssl.sh
Expected Outcome
No compose deprecation warnings.
Image builds without failure (no cmdtest/apt-key errors, no Wappalyzer git auth failure, no lxml compile errors).
Container starts and serves on port 5001.
Notes/Risks
Network hiccups during git clone are retried up to 3 times. If corporate proxy restrictions persist, we can switch those two clones to tarball downloads as a follow-up.
If future Python upgrades occur, re-validate wheel compatibility for lxml<5.
Checklist
Build succeeds locally
Compose runs cleanly without version warnings
No breaking changes to runtime paths in CMD (updated Wappalyzer path)
Minimal surface area of changes isolated to Docker-related files
Related
N/A (infrastructure build fix)

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.

2 participants