Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions .github/workflows/deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ jobs:
runs-on: ubuntu-latest
needs: build-and-push-image
env:
FRONTEND_IMAGE: ${{ needs.build-and-push-image.outputs.frontend_image }}
FRONTEND_IMAGE: zerooneitkr/zeroone-frontend:${{ needs.build-and-push-image.outputs.frontend_version }}-${{ needs.build-and-push-image.outputs.frontend_commit }}
RELEASE_ID: ${{ needs.build-and-push-image.outputs.release_id }}
DEPLOYED_AT: ${{ needs.build-and-push-image.outputs.deployed_at }}
FRONTEND_COMMIT: ${{ needs.build-and-push-image.outputs.frontend_commit }}
Expand Down Expand Up @@ -247,15 +247,16 @@ jobs:
- name: Deploy frontend image to production server
run: |
set -euo pipefail
sshpass -p '${{ secrets.SSH_PASSWORD }}' ssh ssh.zeroone.it.kr bash << 'EOF'
set -e
: "${FRONTEND_IMAGE:?FRONTEND_IMAGE is required}"
sshpass -p '${{ secrets.SSH_PASSWORD }}' ssh ssh.zeroone.it.kr \
"FRONTEND_IMAGE='$FRONTEND_IMAGE' bash -s" << 'EOF'
set -euo pipefail
SUDO_PASSWORD='${{ secrets.SSH_PASSWORD }}'
FRONTEND_IMAGE='${{ needs.build-and-push-image.outputs.frontend_image }}'
: "${FRONTEND_IMAGE:?FRONTEND_IMAGE is required}"

echo "사용하지 않는 컨테이너, 이미지, 네트워크 정리 중 (볼륨제외)..."
echo "$SUDO_PASSWORD" | sudo -S docker stop frontend-prod || true
echo "$SUDO_PASSWORD" | sudo -S docker rm frontend-prod || true
echo "$SUDO_PASSWORD" | sudo -S docker system prune -a -f
echo "사용하지 않는 이미지, 네트워크 정리 중 (실행 중 컨테이너 보존, 볼륨 제외)..."
echo "$SUDO_PASSWORD" | sudo -S docker image prune -f || true
echo "$SUDO_PASSWORD" | sudo -S docker network prune -f || true

cd ~/front/study-platform-client-prod || {
echo "디렉토리가 없습니다. 생성합니다..."
Expand Down Expand Up @@ -288,16 +289,17 @@ jobs:
restart: unless-stopped
COMPOSE

echo "기존 컨테이너 완전 제거"
echo "도커 이미지 pull: $FRONTEND_IMAGE"
echo "$SUDO_PASSWORD" | sudo -S docker pull "$FRONTEND_IMAGE"

echo "기존 컨테이너 교체"
echo "$SUDO_PASSWORD" | sudo -S docker compose -f docker-compose.prod.yml down || true
echo "$SUDO_PASSWORD" | sudo -S docker stop frontend-prod || true
echo "$SUDO_PASSWORD" | sudo -S docker rm frontend-prod || true

echo "도커 이미지 pull: $FRONTEND_IMAGE"
echo "$SUDO_PASSWORD" | sudo -S docker pull "$FRONTEND_IMAGE"

echo "도커 컴포즈 재시작"
echo "$SUDO_PASSWORD" | sudo -S docker compose -f docker-compose.prod.yml up -d
echo "$SUDO_PASSWORD" | sudo -S docker system prune -f || true

echo "운영 서버 배포 완료"
EOF
Expand Down
Loading