コードを更新するたびに手動でサーバーに反映するのが面倒、そんな作業をシェルスクリプトで自動化します。
基本的なデプロイスクリプト
#!/bin/bash
set -e
APP_DIR="/var/www/myapp"
BRANCH="main"
log() { echo "[$(date "+%Y-%m-%d %H:%M:%S")] $1" | tee -a /var/log/deploy.log; }
log "デプロイ開始"
cd "$APP_DIR"
git pull origin "$BRANCH"
log "コード更新: $(git log -1 --oneline)"
sudo systemctl restart myapp
log "サービス再起動完了"
sleep 3
curl -sf http://localhost:3000/health > /dev/null && log "デプロイ成功" || { log "ヘルスチェック失敗"; exit 1; }set -e の重要性
set -e をスクリプト先頭に書くと、コマンドが失敗した時点でスクリプトを終了します。デプロイスクリプトでは途中のエラーを見逃さないために重要です。
まとめ
set -eでエラー発生時に即停止する安全なスクリプトになる- git pull でコードを更新し systemctl restart でサービスを再起動する
- ヘルスチェックで実際にサービスが動いているか確認する



コメント