Docker Compose opisuje wielokontenerowy stos w jednym pliku i uruchamia go jednym poleceniem. Oto poradnik wdrożenia; najpierw zainstaluj Docker, jeśli jeszcze tego nie zrobiłeś. Po stos specyficzny dla agentów AI (agent + baza wektorowa + Redis) zajrzyj do docker-compose dla agentów AI.
1. Stos: aplikacja + baza danych + 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: {} }
Sekrety żyją w .env, nigdy w pliku compose:
# /opt/stack/.env (chmod 600, git-ignored)
DB_PASSWORD=a-long-random-string
Minimalny Caddyfile przekazuje twoją domenę do aplikacji i sam pobiera HTTPS:
app.yourdomain.com {
reverse_proxy app:8080
}
2. Podnieś go
cd /opt/stack
docker compose up -d
docker compose ps
docker compose logs -f app
restart: unless-stopped na każdej usłudze + Docker włączony przy rozruchu = stos wraca sam po reboocie.
3. Codzienne polecenia
docker compose pull && docker compose up -d # update images
docker compose down # stop the stack
docker compose restart app # restart one service
Część, którą ludzie robią źle: wystawione porty
Docker publikuje porty przez iptables, więc kontener z ports: ["5432:5432"] jest osiągalny z internetu nawet za zaporą UFW, którą uważałeś za zamkniętą. Publikuj tylko publiczny punkt wejścia (proxy na 80/443); trzymaj bazy danych i cache w sieci compose lub przypięte do 127.0.0.1. Wszystko, co obsługuje ruch webowy, potrzebuje planu z dedykowanym IP; połącz z zaporą UFW.
Po cały stos za jednym IP zobacz self-host wielu usług. Root w około minutę, NVMe, bez KYC, płatność w krypto.
Komentarze
Brak komentarzy. Bądź pierwszy.