實戰:完整專案部署
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 語法
- ✅ 多服務架構
- ✅ 開發/正式分離
- ✅ 網路與儲存
- ✅ 一鍵部署腳本