All checks were successful
WHP Default Container / Build-and-Push (push) Successful in 14s
- Modified Dockerfile to set AllowOverride All for htdocs directory - Enabled mod_rewrite module for common .htaccess functionality - Added CLAUDE.md with project documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1.9 KiB
1.9 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Docker-based web server container that provides an Apache HTTP Server with an auto-detection mechanism for web content. If the web directory is empty on startup, it automatically copies a default landing page.
Key Architecture
- Container Base: Apache HTTP Server on Alpine Linux (
httpd:alpine
) - Startup Logic:
scripts/startup.sh
handles the auto-detection and default content copying - Default Content: Professional landing page in root
index.html
- Web Root:
/usr/local/apache2/htdocs
inside the container
Common Commands
Build and Run
# Build the container
docker build -t my-web-server .
# Run with default settings
docker run -p 80:80 my-web-server
# Run with volume mount for custom content
docker run -p 80:80 -v /path/to/web/content:/usr/local/apache2/htdocs my-web-server
# Run on custom port
docker run -p 8080:80 my-web-server
Development
# View container logs
docker logs <container-id>
# Execute shell in running container
docker exec -it <container-id> /bin/sh
# Test startup script locally
chmod +x scripts/startup.sh
./scripts/startup.sh
Server Deployment
- The git directory on the servers are /root/whp and once you do a git pull, to sync web files you would run the rsync command for web-files/ to /docker/whp/web/
Important Implementation Details
- Auto-Detection Logic: The startup script checks if
/usr/local/apache2/htdocs
is empty (ignoring hidden files) before copying default content - Non-Destructive: Only copies default content if the directory is truly empty - won't overwrite existing files
- Startup Flow:
- Container starts →
startup.sh
runs → Checks for content → Copies if empty → Starts Apache
- Container starts →
- Default Landing Page: Responsive, professional design with proper meta tags and CSS