Docker Compose descrie un stack cu mai multe containere într-un singur fișier și îl rulează cu o singură comandă. Acesta e ghidul de deploy; întâi instalează Docker, dacă n-ai făcut-o. Pentru un stack anume pentru agenți AI (agent + bază vectorială + Redis), vezi docker-compose pentru agenți AI.
1. Un stack: aplicație + bază de date + reverse proxy
# /opt/stack/docker-compose.yml
services:
app:
image: your/app:latest
restart: unless-stopped
env_file: [.env]
depends_on: [db]
# no ports: — reached only through the proxy below
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes: ["pg:/var/lib/postgresql/data"] # internal only
caddy: # HTTPS automatically
image: caddy:2
restart: unless-stopped
ports: ["80:80", "443:443"] # the only public entrypoint
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
volumes: { pg: {}, caddy_data: {} }
Secretele stau în .env, niciodată în fișierul compose:
# /opt/stack/.env (chmod 600, git-ignored)
DB_PASSWORD=a-long-random-string
Un Caddyfile minimal redirecționează domeniul spre aplicație și obține singur HTTPS:
app.yourdomain.com {
reverse_proxy app:8080
}
2. Pornește-l
cd /opt/stack
docker compose up -d
docker compose ps
docker compose logs -f app
restart: unless-stopped pe fiecare serviciu + Docker activat la boot = stackul revine singur după o repornire.
3. Comenzi de zi cu zi
docker compose pull && docker compose up -d # update images
docker compose down # stop the stack
docker compose restart app # restart one service
Partea pe care o greșesc oamenii: porturile expuse
Docker publică porturile prin iptables, așa că un container cu ports: ["5432:5432"] e accesibil de pe internet chiar și în spatele unui firewall UFW pe care îl credeai închis. Publică doar punctul de intrare public (proxy-ul pe 80/443); ține bazele de date și cache-urile pe rețeaua compose sau legate de 127.0.0.1. Orice servește trafic web are nevoie de un plan cu IP dedicat; combină-l cu un firewall UFW.
Pentru un stack întreg în spatele unui singur IP, vezi găzduirea mai multor servicii. Root în aproximativ un minut, NVMe, fără KYC, plată cripto.
Cum eliberezi spațiu pe disc pe un VPS fără să strici nimic →
Comentarii
Încă nu există comentarii. Fii primul.