Rails開發部署工作流程 技術部落格.
使用 Kamal gemfile (Docker)
Rails版本: rails8.0以上, ruby3.3.0以上都可.
Ubuntu 24.04 安裝 Docker 完整流程
1. 更新系統套件
sudo apt update
sudo apt upgrade -y
2. 安裝必要的套件
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
3. 添加 Docker 官方 GPG 密鑰
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 添加 Docker 儲存庫
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 更新套件索引
sudo apt update
6. 安裝 Docker Engine
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
7. 啟動並啟用 Docker 服務
sudo systemctl start docker
sudo systemctl enable docker
8. 將使用者加入 docker 群組(避免每次都要 sudo)
sudo usermod -aG docker $USER
9. 重新載入群組權限
newgrp docker
10. 驗證 Docker 安裝
docker --version
docker compose version
11. 測試 Docker 是否正常運作
docker run hello-world
額外配置建議
安裝 Git(如果還沒有的話)
sudo apt install -y git
配置 Git(如果需要的話)
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
安裝 Kamal(用於部署你的 Rails 應用)
gem install kamal
部署你的專案
安裝完 Docker 後,你可以:
- clone 你的專案:
git clone 你的 { projects }
-
配置 Kamal 部署設定:
- 修改
config/deploy.yml中的 IP 地址 - 設定域名和 SSL 配置
- 配置 registry 資訊
- 修改
- 設定環境變數:
kamal setup
- 部署應用:
kamal deploy
kamal app stop
kamal app remove
kamal app exec 'env | grep DATABASE'
kamal envify
kamal app exec 'cat /rails/.env' 2>/dev/null || echo "No .env file in container"
kamal app exec -i bash
# 先啟動資料庫(如果還沒啟動)
kamal accessory boot db
# 推送新的環境變數
kamal env push
# 重新部署應用
kamal deploy
kamal app exec 'env | grep DATABASE_URL'
安全建議
- 設定防火牆:
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
- 定期更新系統:
sudo apt update && sudo apt upgrade -y
deploy.yml 和 dockerfile要寫好
.gitignore 處理一下敏感資訊