實戰:完整專案部署
Vibe Prompt
「幫我寫一個完整的部署腳本:
- 在 Ubuntu VPS 上安裝 Docker 與 Compose
- 從 GitHub clone 專案
- 複製 .env 並填入變數
- docker compose up -d 啟動全部服務
- 設定 Nginx reverse proxy + SSL
- 設定每日自動備份資料庫」
deploy.sh
#!/bin/bash
set -e
# 安裝 Docker
curl -fsSL https://get.docker.com | sh
# Clone 專案
git clone https://github.com/username/myapp.git
cd myapp
# 設定環境變數
cp .env.example .env
nano .env # 填入你的環境變數
# 啟動所有服務
docker compose -f compose.yml -f compose.prod.yml up -d --build
# 設定 Nginx
sudo apt install nginx
sudo tee /etc/nginx/sites-available/myapp << 'EOF'
server {
listen 80;
server_name myapp.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
EOF
# SSL (Let's Encrypt)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d myapp.com
# 每日備份
crontab -l | { cat; echo "0 3 * * * cd /opt/myapp && docker compose exec db pg_dump -U myapp myapp > backup/\$(date +\\%Y\\%m\\%d).sql"; } | crontab -
echo "🎉 部署完成!https://myapp.com"
課程總結
Docker Compose 課程完成!
- ✅ Compose YAML 語法
- ✅ 多服務架構
- ✅ 開發/正式分離
- ✅ 網路與儲存
- ✅ 一鍵部署腳本
關鍵要點
- ✅ 請根據本章主題補充具體的學習重點
- ✅ 建議加入比較表格、程式碼範例或流程圖
- ✅ 確保內容扎實且有價值
Docker Compose 實戰要點
Docker Compose 是定義和執行多容器 Docker 應用的工具。用 YAML 檔案設定服務、網路、磁碟區。
為什麼重要?
在 production 部署中,你很少只跑一個容器。Compose 讓你把 Web Server、資料庫、快取、佇列全部定義在同一個 YAML 中,一行指令全部啟動。
VPS 部署流程
把 Docker Compose 專案部署到 VPS(如 AWS EC2、DigitalOcean、Linode)的標準步驟:
# 1. SSH 到 VPS
ssh root@your-server-ip
# 2. 安裝 Docker + Compose(如果還沒裝)
apt update && apt install docker.io docker-compose-plugin
# 3. 複製專案到伺服器
git clone https://github.com/your/project.git
cd project
# 4. 啟動
cat .env.production # 確認環境變數
sudo docker compose -f docker-compose.prod.yml up -d
# 5. 檢查
sudo docker compose ps
sudo docker compose logs -f
課程總結
這堂 Docker Compose 課從 YAML 語法、多服務架構、環境分離、網路磁碟區到 VPS 部署——你現在可以管理一個多容器的 production 應用了。