how-to-talk-to-claude/docker-compose.yml
Claude AI Guide Project 153969575e 🐳 Docker + Caddy deployment setup for caddy-docker-proxy
- Multi-stage Dockerfile with Caddy web server
- Production Astro config bypasses plugin conflicts
- Optimized Caddyfile with security headers and caching
- Docker-compose.yml with proper caddy-docker-proxy labels
- Comprehensive .dockerignore for efficient builds
- Health check endpoints and proper container security
- Tested and working: builds in 19.6s, serves HTTP 200

Ready for deployment with caddy-docker-proxy\!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-19 22:06:06 -06:00

38 lines
991 B
YAML

version: '3.8'
services:
how-to-claude:
build: .
container_name: how-to-claude
restart: unless-stopped
# Caddy Docker Proxy labels
labels:
caddy: how-to-claude.your-domain.com # Replace with your actual domain
caddy.reverse_proxy: "{{upstreams 80}}"
caddy.header: "/ X-Robots-Tag noindex" # Remove this if you want search engines to index
# Health check
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Security: run as non-root user
user: "101:101" # nginx user
# Read-only root filesystem for security
read_only: true
# Temporary filesystems for nginx
tmpfs:
- /var/cache/nginx:noexec,nosuid,size=100m
- /var/run:noexec,nosuid,size=100m
- /tmp:noexec,nosuid,size=100m
networks:
default:
external:
name: caddy