[Study] 개발 환경 구축 셸 스크립트

김보아·2025년 3월 14일

Study

목록 보기
4/6
#!/bin/bash

set -e  # 오류 발생 시 즉시 종료

echo "🚀 1. 운영체제 확인 및 기본 도구 설치"

if [ -f /etc/os-release ]; then
    . /etc/os-release
    OS=$ID
else
    OS=$(uname -s)
fi

if [[ "$OS" == "ubuntu" || "$OS" == "debian" ]]; then
    echo "🔍 Ubuntu/Debian 기반 OS 감지됨"
    apt-get update
    apt-get install -y git curl wget unzip vim nano
    apt-get clean
    rm -rf /var/lib/apt/lists/*
else
    echo "❌ 지원되지 않는 운영체제입니다: $OS"
    exit 1
fi

echo "✅ 기본 도구 설치 완료"
echo "🚀 2. Node.js 및 npm 설치"

NODE_VERSION=20
curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash -
apt-get install -y nodejs

echo "🚀 3. NestJS CLI 설치"
npm install -g @nestjs/cli

echo "🚀 4. NestJS 프로젝트 확인 및 자동 생성"

PROJECT_DIR="/usr/src/app"
PROJECT_NAME="nest_project"

# 프로젝트 디렉토리 생성 및 이동
mkdir -p "$PROJECT_DIR"
cd "$PROJECT_DIR"

# 프로젝트 디렉토리 존재 여부 확인, package.json이 없으면 새 프로젝트 생성
if [ ! -d "$PROJECT_DIR" ] || [ ! -f "$PROJECT_DIR/package.json" ]; then
    echo "⚠️ NestJS 프로젝트가 없습니다. 새로 생성합니다..."
    nest new "$PROJECT_NAME" --package-manager npm --skip-git

    # 생성된 프로젝트 폴더 내 파일을 현재 디렉토리로 이동
    mv "$PROJECT_NAME"/* .
    rm -rf "$PROJECT_NAME"
else
    echo "✅ 기존 프로젝트가 존재합니다."
fi

echo "🚀 5. .env 파일 생성 (기존 파일 유지)"
if [ ! -f .env ]; then
    echo "DATABASE_URL=postgresql://my_user:my_password@localhost:5432/my_database" > .env
    echo "API_KEY=your_api_key" >> .env
    echo "API_ENDPOINT=https://api.example.com" >> .env
    echo "PORT=3000" >> .env
    echo "NODE_ENV=development" >> .env
    echo "✅ .env 파일 생성 완료"
else
    echo "⚠️ .env 파일이 이미 존재합니다. 기존 값을 유지합니다."
fi

echo "🚀 6. 프로젝트 패키지 설치"
npm install

echo "✅ 모든 설치 완료! 컨테이너 내부에서 개발을 진행하세요!"

우분투 도커 이미지를 사용하여 컨테이너를 만들고 그 안에서 해당 셸 스크립트를 실행한다.

profile
개발하는 개발자

0개의 댓글