Docker를 사용한 Github 프로젝트 배포

발행: (2026년 3월 27일 오후 02:37 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

필요​한 도구 설치

sudo apt update && sudo apt upgrade -y

Git 설치

sudo apt install git -y

Node.js 설치 (IMPORTANT → Node 20+)

# Remove any old Node.js packages
sudo apt remove nodejs npm -y

# Add the NodeSource repository for Node 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

# Install Node.js
sudo apt install -y nodejs

설치 확인

node -v
npm -v

GitHub 프로젝트 복제

git clone https://github.com/yourusername/your-repo.git
cd your-repo

프로젝트 디렉터리 스크린샷

의존성 설치

rm -rf node_modules package-lock.json
npm install

프로젝트 빌드 (IMPORTANT)

npm run build

빌드 출력 스크린샷

Docker 설치

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Docker를 사용해 웹사이트 실행

docker run -d -p 80:80 \
  -v $(pwd)/dist:/usr/share/nginx/html \
  --name mysite \
  nginx

Docker 실행 출력 1
Docker 실행 출력 2
Docker 실행 출력 3

컨테이너 확인

docker ps

웹사이트 열기

브라우저에서 http://your-ec2-public-ip에 접속합니다.

문제 해결

  • Docker 설치 충돌

    sudo apt remove containerd containerd.io -y
    sudo apt install docker.io -y
  • Docker 권한 거부

    sudo usermod -aG docker ubuntu
    newgrp docker
  • 컨테이너가 실행되지 않음 / 사이트가 열리지 않음

    docker ps          # 컨테이너 상태 확인
    curl localhost     # 로컬에서 테스트
    docker logs mysite # 로그 확인
  • 브라우저에서 웹사이트가 열리지 않음

    EC2 보안 그룹이 인바운드 HTTP 트래픽을 허용하도록 설정합니다:

    유형포트소스
    HTTP800.0.0.0/0

최종 배포 명령

sudo docker run -d -p 80:0 \
  -v $(pwd)/dist:/usr/share/nginx/html \
  --name mysite \
  nginx
0 조회
Back to Blog

관련 글

더 보기 »