- Web UI for Docker container management - Bound to localhost (reverse proxy recommended) - Uses named volume for persistent data - Configured for Europe/Budapest timezone - Resource limits and health checks included
51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
# Portainer Docker Compose Configuration
|
|
# Deploy with: sudo mkdir -p /opt/docker/portainer && sudo cp config/docker/portainer/docker-compose.yml /opt/docker/portainer/
|
|
# Start with: cd /opt/docker/portainer && sudo docker-compose up -d
|
|
|
|
# PORTAINER CONFIGURATION
|
|
# - Web UI for Docker container management
|
|
# - Bound to localhost only (reverse proxy recommended)
|
|
# - Persistent data storage in named volume
|
|
|
|
services:
|
|
portainer:
|
|
image: portainer/portainer-ce:latest
|
|
container_name: portainer
|
|
restart: unless-stopped
|
|
|
|
# Environment
|
|
environment:
|
|
- TZ=Europe/Budapest
|
|
|
|
# Network - bind to localhost for security
|
|
ports:
|
|
- "127.0.0.1:9000:9000" # Web UI (reverse proxy only)
|
|
|
|
# Volume mounts
|
|
volumes:
|
|
# Docker socket for container management
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
# Portainer data
|
|
- portainer_data:/data
|
|
|
|
# Resource limits
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.5'
|
|
memory: 512M
|
|
reservations:
|
|
cpus: '0.1'
|
|
memory: 128M
|
|
|
|
# Health check
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9000/api/status"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
volumes:
|
|
portainer_data:
|