EQVPS

በVPS ላይ የDocker Compose ስታክ እንዴት ማሰማራት

በDocker Compose በVPS ላይ ባለብዙ-ኮንቴይነር ስታክ አሰማራ፦ docker-compose.yml ጻፍ፣ ሚስጥሮችን በ.env ውስጥ አስቀምጥ፣ ከዳግም-ማስነሳት-በኋላ-ዳግም-ማስጀመር ጋር አስነሳው፣ እና የምትፈልጋቸውን ወደቦች ብቻ አትም። ከድር መተግበሪያ፣ ዳታቤዝና reverse proxy ጋር copy-paste ምሳሌ።

Docker Compose ባለብዙ-ኮንቴይነር ስታክን በአንድ ፋይል ይገልጻል እና በአንድ ትዕዛዝ ያሄደዋል። ይህ የማሰማራት how-to ነው፤ ካላደረግከው መጀመሪያ Docker ጫን። ለAI-ወኪል-ተኮር ስታክ (ወኪል + vector DB + Redis) ለAI ወኪሎች docker-compose ተመልከት።

1. ስታክ፦ መተግበሪያ + ዳታቤዝ + 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: {} }

ሚስጥሮች በ.env ውስጥ ይኖራሉ፣ በጭራሽ በcompose ፋይል ውስጥ አይደለም፦

# /opt/stack/.env  (chmod 600, git-ignored)
DB_PASSWORD=a-long-random-string

አነስተኛ Caddyfile ጎራህን ወደ መተግበሪያው ያገናኛል እና HTTPS ን ራሱ ያመጣል፦

app.yourdomain.com {
  reverse_proxy app:8080
}

2. አስነሳው

cd /opt/stack
docker compose up -d
docker compose ps
docker compose logs -f app

በእያንዳንዱ አገልግሎት ላይ restart: unless-stopped + በማስነሳት የነቃ Docker = ስታኩ ከዳግም ማስነሳት በኋላ ራሱ ይመለሳል።

3. የዕለት ተዕለት ትዕዛዞች

docker compose pull && docker compose up -d   # update images
docker compose down                            # stop the stack
docker compose restart app                     # restart one service

ሰዎች የሚሳሳቱበት ክፍል፦ የተጋለጡ ወደቦች

Docker ወደቦችን በiptables በኩል ያትማል፣ ስለዚህ ports: ["5432:5432"] ያለው ኮንቴይነር ዘግተኸዋል ብለህ ካሰብከው የUFW ፋየርዎል ጀርባም ከኢንተርኔት ተደራሽ ነው። ብቻ ይፋዊ መግቢያ ነጥቡን አትም (በ80/443 ላይ proxy)፤ ዳታቤዞችንና cache-ን በcompose አውታረ መረብ ወይም ወደ 127.0.0.1 ታስረው አስቀምጥ። የድር ትራፊክ የሚያገለግል ማንኛውም ነገር የተወሰነ-IP እቅድ ያስፈልገዋል፤ ከUFW ፋየርዎል ጋር አጣምረው።

ከአንድ IP ጀርባ ላለ ሙሉ ስታክ ብዙ አገልግሎቶችን ራስ-ማስተናገድ ተመልከት። በአንድ ደቂቃ ገደማ root፣ NVMe፣ ያለ KYC፣ በክሪፕቶ የሚከፈል።

FAQ

በVPS ላይ የDocker Compose ስታክ እንዴት አሰማራለሁ?

ከCompose ተሰኪ ጋር Docker ጫን፣ እያንዳንዱን አገልግሎት የሚገልጽ docker-compose.yml ጻፍ፣ ሚስጥሮችን በgit-የተተወ .env ውስጥ አስቀምጥ፣ ከዚያ docker compose up -d። በእያንዳንዱ አገልግሎት ላይ restart: unless-stopped አዘጋጅና ስታኩ ዳግም ማስነሳትን እንዲተርፍ Docker በማስነሳት አንቃ። ከታች ያለው ምሳሌ የድር መተግበሪያ፣ Postgres እና Caddy reverse proxy ያሄዳል።

ሚስጥሮች የት ይሄዳሉ — በcompose ፋይል ውስጥ?

አይ። በ.env ፋይል ውስጥ አስቀምጣቸው (chmod 600፣ git-የተተወ) እና በcompose ውስጥ እንደ ${VAR} ጥቀሳቸው፣ ወይም Docker secrets ተጠቀም። የይለፍ ቃላትን ወይም API ቁልፎችን በጭራሽ ወደ docker-compose.yml አትኮሚት — ንቁ ማረጋገጫ ያለው የተለቀቀ ፋይል ጥንታዊው ስህተት ነው።

ስታኩ ከዳግም ማስነሳት በኋላ ይመለሳል?

ካልህ ብቻ። በእያንዳንዱ አገልግሎት ላይ restart: unless-stopped (ወይም always) አዘጋጅና Docker በማስነሳት አንቃ (systemctl enable docker)። ከዚያ docker compose up -d ዳግም ማስነሳትን ይተርፋል እና የተበላሹ ኮንቴይነሮችን ይዳግማል።

የትኞቹ ወደቦች ይጋለጣሉ?

በ ports: የምታትመው ብቻ። ውስጣዊ አገልግሎቶችን (ዳታቤዝ፣ cache) ወደ compose አውታረ መረብ ወይም 127.0.0.1 አስረው እና ይፋዊ መግቢያ ነጥቡን ብቻ አትም — አብዛኛውን ጊዜ በ80/443 ላይ reverse proxy። Docker በiptables በኩል ያትማል፣ ስለዚህ በስህተት የገባ ports: መስመር ዘግተኸዋል ብለህ ካሰብከው UFW ጀርባም ከኢንተርኔት ተደራሽ ነው።

መታወቂያ ወይም ካርድ ትጠይቃላችሁ?

አይ። ለመመዝገብ ኢሜይል፣ በUSDC ወይም USDT መክፈል — ሰነድ የለም፣ ካርድ የለም። በአንድ ደቂቃ ገደማ root።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።