1. 문제: 원격 서버 빌드 모니터링
원격 서버에서 도커 빌드를 실행할 때, 터미널 화면을 계속 쳐다보지 않고도 빌드 성공/실패 여부를 알고 싶습니다. Slack 알림, 이메일, 또는 VSCode가 켜져 있는 윈도우 PC에서의 알림 등을 원합니다.
2. 해결 방안 1: CI/CD 도구 활용 (Jenkins / GitHub Actions)
일반적으로 Jenkins나 GitHub Actions 같은 CI/CD 도구를 사용하면 빌드 파이프라인의 ‘Post-build Action’을 통해 Slack이나 이메일 알림을 쉽게 설정할 수 있습니다.
-
Jenkins: Slack Notification Plugin, Email Extension Plugin 등을 설치하여 설정합니다.
-
GitHub Actions: 워크플로우(.yml) 파일 내에
if: ${{ success() }}또는if: ${{ failure() }}조건을 사용하여,curl로 Slack Webhook을 호출하거나 SendGrid 같은 이메일 서비스를 이용해 알림을 보냅니다.
3. 해결 방안 2: VS Code Task와 Webhook 활용 (Jenkins 불필요) (채택)
Jenkins 같은 별도 도구 설치가 번거롭다면, VS Code의 Task 기능을 사용하여 빌드 완료 시 원하는 스크립트를 실행(예: Slack 알림)하도록 설정할 수 있습니다.
3.1. Slack Webhook 설정 단계
먼저 알림을 받을 Slack 채널의 Webhook URL이 필요합니다.
-
Slack API 페이지로 이동하여 “Create New App"을 클릭합니다.
-
“From scratch” 옵션을 선택하고, 앱 이름과 워크스페이스를 지정하여 앱을 생성합니다.
-
좌측 메뉴에서 “Incoming Webhooks"를 선택하고 “Activate Incoming Webhooks"를 켭니다.
-
하단의 “Add New Webhook to Workspace” 버튼을 클릭합니다.
-
메시지를 보낼 채널을 선택하고 “Allow"를 클릭합니다.
-
생성된 Webhook URL (예:
https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK)을 복사합니다.
3.2. VS Code tasks.json 설정
VS Code에서 열어둔 프로젝트 폴더 내에 .vscode/tasks.json 파일을 생성하고, 빌드 작업(Build Project)과 알림 작업(Notify Slack)을 연동합니다.
JSON
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Project", // 1. 실제 빌드 작업
"type": "shell",
"command": "docker build -t my-image .", // 실행할 빌드 명령어
"group": "build",
"problemMatcher": []
},
{
"label": "Notify Slack on Success", // 2. 빌드 성공 시 알림 작업
"type": "shell",
// curl을 사용해 Slack Webhook으로 JSON 메시지 전송
"command": "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"Build completed!\"}' https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
"problemMatcher": [],
"dependsOn": "Build Project" // "Build Project" 작업이 끝나면 실행
}
// (참고) 'runOn': 'failure' 옵션과 dependsOn을 조합하면
// 실패 시 알림도 별도로 구성할 수 있습니다.
]
}
- 참고 (이메일): Slack 대신
sendemail같은 커맨드라인 이메일 도구를 설치하여command에 해당 명령어를 입력하는 방식으로 이메일 알림도 구현할 수 있습니다.
4. 문제 해결 (Debugging): “tasks.json"이 VS Code에 뜨지 않을 때
tasks.json 파일을 분명히 만들었는데도 F1 > “Tasks: Run Task” 목록에 작업이 나타나지 않는 경우가 있습니다.
4.1. 파일 내용 확인
먼저 tasks.json 파일의 JSON 구문이 올바른지 확인합니다. 특히, 기본 빌드 작업을 지정하는 "isDefault": true 속성이 올바르게 설정되었는지 확인해 볼 수 있습니다.
JSON
"group": {
"kind": "build",
"isDefault": true // 이 작업을 Ctrl+Shift+B의 기본 빌드로 설정
},
4.2. [중요] 파일 위치 확인
Task가 보이지 않는 가장 결정적인 원인은 .vscode 폴더의 위치일 수 있습니다.
tasks.json 파일은 사용자 홈 디렉토리(~)가 아닌, 현재 VSCode에서 열어둔 프로젝트 폴더의 최상위 루트(Workspace Root)에 위치해야 합니다.
-
잘못된 위치:
~/.vscode/tasks.json -
올바른 위치:
~/현재-작업-폴더/.vscode/tasks.json
5. 결론
프로젝트 폴더 위치에 .vscode/tasks.json 파일을 올바르게 배치한 후, VS Code에서 “Tasks: Run Task"를 실행하면 “Build Project"와 “Notify Slack on Success"가 목록에 정상적으로 나타나는 것을 확인할 수 있습니다.