diff --git a/DOCKER_SETUP.md b/DOCKER_SETUP.md deleted file mode 100644 index 037f1c0d..00000000 --- a/DOCKER_SETUP.md +++ /dev/null @@ -1,321 +0,0 @@ -# PLM WACE Docker 설정 가이드 - -## 개요 -이 문서는 PLM WACE 애플리케이션을 Docker로 실행하는 방법을 설명합니다. - -## 시스템 요구사항 - -### 리눅스 환경 -- Ubuntu 18.04 이상 또는 CentOS 7 이상 -- Docker 20.10 이상 -- Docker Compose 1.29 이상 -- Git (운영환경 배포 시) - -### 필수 소프트웨어 설치 - -#### Docker 설치 (Ubuntu) -```bash -# Docker 공식 GPG 키 추가 -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - -# Docker 리포지토리 추가 -echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - -# Docker 설치 -sudo apt update -sudo apt install docker-ce docker-ce-cli containerd.io - -# Docker Compose 설치 -sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -sudo chmod +x /usr/local/bin/docker-compose - -# 사용자를 docker 그룹에 추가 -sudo usermod -aG docker $USER -``` - -#### Docker 설치 (CentOS) -```bash -# Docker 설치 -sudo yum install -y yum-utils -sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -sudo yum install docker-ce docker-ce-cli containerd.io - -# Docker Compose 설치 -sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -sudo chmod +x /usr/local/bin/docker-compose - -# Docker 서비스 시작 -sudo systemctl start docker -sudo systemctl enable docker - -# 사용자를 docker 그룹에 추가 -sudo usermod -aG docker $USER -``` - -## 환경 설정 - -### 1. 환경 변수 파일 생성 - -#### 개발환경 -```bash -# 개발환경 환경 변수 파일 생성 -cp env.development.example .env.development - -# 필요에 따라 설정 수정 -vim .env.development -``` - -#### 운영환경 -```bash -# 운영환경 환경 변수 파일 생성 -cp env.production.example .env.production - -# 운영환경에 맞게 설정 수정 (특히 비밀번호) -vim .env.production -``` - -### 2. 환경 변수 설정 항목 - -#### 주요 설정 항목 -- `DB_URL`: 데이터베이스 연결 URL -- `DB_USERNAME`: 데이터베이스 사용자명 -- `DB_PASSWORD`: 데이터베이스 비밀번호 -- `JAVA_OPTS`: JVM 옵션 (메모리 설정 등) -- `LOG_LEVEL`: 로그 레벨 (DEBUG, INFO, WARN, ERROR) - -## 스크립트 사용법 - -### 기본 사용법 -```bash -# 실행 권한 부여 (최초 1회) -chmod +x start-docker-linux.sh - -# 개발환경 실행 -./start-docker-linux.sh - -# 운영환경 실행 -./start-docker-linux.sh -e prod -``` - -### 주요 옵션 - -#### 환경 설정 -```bash -# 개발환경 실행 -./start-docker-linux.sh -e dev - -# 운영환경 실행 -./start-docker-linux.sh -e prod -``` - -#### 컨테이너 관리 -```bash -# 컨테이너 중지 -./start-docker-linux.sh -s - -# 컨테이너 재시작 -./start-docker-linux.sh -r - -# Docker 시스템 정리 후 실행 -./start-docker-linux.sh -c -``` - -#### 로그 및 모니터링 -```bash -# 실시간 로그 확인 -./start-docker-linux.sh -l - -# 도움말 확인 -./start-docker-linux.sh -h -``` - -### 옵션 조합 -```bash -# 개발환경에서 Docker 정리 후 재시작 -./start-docker-linux.sh -e dev -c -r - -# 운영환경에서 재시작 -./start-docker-linux.sh -e prod -r -``` - -## 접속 정보 - -### 개발환경 -- 애플리케이션: http://localhost:8090 -- 데이터베이스: localhost:5432 (내부 DB 사용 시) - -### 운영환경 -- 애플리케이션: https://ilshin.esgrin.com -- 대체 도메인: https://autoclave.co.kr - -## 트러블슈팅 - -### 일반적인 문제 - -#### 1. Docker 서비스 오류 -```bash -# Docker 서비스 상태 확인 -sudo systemctl status docker - -# Docker 서비스 시작 -sudo systemctl start docker - -# Docker 서비스 자동 시작 설정 -sudo systemctl enable docker -``` - -#### 2. 권한 오류 -```bash -# 사용자를 docker 그룹에 추가 -sudo usermod -aG docker $USER - -# 로그아웃 후 재로그인 또는 그룹 변경 적용 -newgrp docker -``` - -#### 3. 포트 충돌 -```bash -# 포트 사용 확인 -sudo netstat -tlnp | grep :8090 - -# 프로세스 종료 -sudo kill -9 -``` - -#### 4. 환경 변수 파일 오류 -```bash -# 환경 변수 파일 존재 확인 -ls -la .env.* - -# 환경 변수 파일 내용 확인 -cat .env.development -``` - -### 로그 확인 - -#### 컨테이너 로그 -```bash -# 전체 로그 확인 -./start-docker-linux.sh -l - -# 특정 서비스 로그 확인 -docker-compose -f docker-compose.dev.yml logs plm-ilshin - -# 로그 파일 확인 (컨테이너 내부) -docker exec -it plm-ilshin-container tail -f /usr/local/tomcat/logs/catalina.out -``` - -#### 시스템 로그 -```bash -# Docker 데몬 로그 확인 -sudo journalctl -u docker.service - -# 시스템 로그 확인 -sudo journalctl -xe -``` - -## 고급 사용법 - -### 수동 Docker Compose 사용 -```bash -# 개발환경 수동 실행 -docker-compose -f docker-compose.dev.yml up -d - -# 운영환경 수동 실행 -docker-compose -f docker-compose.prod.yml up -d - -# 컨테이너 중지 -docker-compose -f docker-compose.dev.yml down -``` - -### 컨테이너 내부 접근 -```bash -# 컨테이너 내부 접근 -docker exec -it plm-ilshin-container bash - -# 데이터베이스 접근 (내부 DB 사용 시) -docker exec -it plm-ilshin-db-container psql -U postgres -d ilshin -``` - -### 백업 및 복원 -```bash -# 데이터베이스 백업 -docker exec plm-ilshin-db-container pg_dump -U postgres ilshin > backup.sql - -# 데이터베이스 복원 -docker exec -i plm-ilshin-db-container psql -U postgres ilshin < backup.sql -``` - -## 보안 고려사항 - -### 운영환경 보안 -1. 환경 변수 파일 권한 설정 - ```bash - chmod 600 .env.production - ``` - -2. 방화벽 설정 - ```bash - # 필요한 포트만 열기 - sudo ufw allow 80/tcp - sudo ufw allow 443/tcp - sudo ufw enable - ``` - -3. SSL 인증서 설정 (Traefik 사용) - - Let's Encrypt 자동 갱신 설정 - - 도메인 검증 설정 - -### 개발환경 보안 -1. 개발용 비밀번호 사용 -2. 외부 접근 제한 -3. 정기적인 이미지 업데이트 - -## 성능 최적화 - -### JVM 튜닝 -```bash -# .env 파일에서 JVM 옵션 조정 -JAVA_OPTS=-Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m -``` - -### Docker 리소스 제한 -```yaml -# docker-compose.yml에서 리소스 제한 -services: - plm-ilshin: - deploy: - resources: - limits: - cpus: '2.0' - memory: 2G - reservations: - cpus: '1.0' - memory: 1G -``` - -## 모니터링 - -### 컨테이너 상태 모니터링 -```bash -# 컨테이너 상태 확인 -docker ps - -# 리소스 사용량 확인 -docker stats - -# 컨테이너 로그 모니터링 -docker logs -f plm-ilshin-container -``` - -### 애플리케이션 모니터링 -- 애플리케이션 로그 확인 -- 데이터베이스 연결 상태 확인 -- 메모리 사용량 모니터링 - -## 지원 및 문의 - -문제가 발생하거나 추가 도움이 필요한 경우: -1. 로그 파일 확인 -2. 환경 설정 검토 -3. 개발팀 문의 \ No newline at end of file