NestJS & VueJS 앱 Dokploy로 배포하는 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

NestJS 및 VueJS 앱을 Dokploy로 배포하는 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발, DevOps

대상자

중급 이상의 웹 개발자 및 DevOps 엔지니어. Docker, GitHub Actions, Dokploy 배포 프로세스에 대한 이해가 필요한 대상자.

핵심 요약

  • Dockerfile의 다단계 빌드를 통해 이미지 크기 최적화: base, builder, runner 단계로 나누어 생산성 향상
  • GitHub Actions를 활용한 자동화된 이미지 빌드 및 Docker Hub에의 푸시: docker buildxdocker push 명령어 사용
  • Dokploy를 통한 VPS 배포: 도메인 연결, SSL 인증서 자동 생성, 서비스 구성 간단한 UI 제공

섹션별 세부 요약

1. Dockerfile 구조 설계

  • base 단계: package.jsonpackage-lock.json 복사 후 npm ci로 의존성 설치
  • builder 단계: dist 디렉토리 생성, npm run build 실행, npm ci --omit=dev로 개발 의존성 제외
  • runner 단계: distnode_modules 복사, node 명령어로 NestJS 백엔드 실행

2. 프론트엔드 Dockerfile 구성

  • NGINX 기반 runner 단계: dist 파일 복사, nginx.conf 설정, 8080 포트 노출
  • try_files 디렉토리 설정으로 정적 파일 서빙 가능

3. GitHub Actions 워크플로우 설정

  • workflow_dispatch 이벤트로 수동/자동 트리거 설정
  • docker buildx build -f Dockerfile.prod 명령어로 이미지 생성 및 docker push로 Docker Hub에 푸시
  • secrets.DOCKER_USERNAMEsecrets.DOCKER_PASSWORD 환경 변수 사용

4. Dokploy 배포 프로세스

  • VPS에 curl -sSL | sh 명령어로 설치, Docker Swarm 클러스터 생성
  • 도메인 연결: Web Server 설정에서 Let's Encrypt SSL 인증서 자동 생성
  • Projects 탭에서 프로젝트 생성 후 Create Project 버튼 클릭
  • DatabaseBackend 서비스 생성: 서비스 이름, DB 정보, Docker 이미지 지정
  • External Host URL 기반 백엔드 서비스 구성, 도메인 설정(예: api.your_domain.com)

결론

Dokploy는 Docker 이미지 기반의 간단한 배포 프로세스를 제공하며, 환경 변수 설정도메인 연결이 필수적입니다. 또한 템플릿 기능을 통해 Supabase, Elasticsearch 등 외부 서비스와의 연동을 쉽게 할 수 있습니다. 개발자는 GitHub Actions를 통한 자동화된 빌드와 Dokploy의 UI 기반 배포를 병행해 CI/CD 흐름을 최적화해야 합니다.