Files
bns_system/DOCKER_SETUP.md
2025-09-16 14:04:11 +09:00

6.9 KiB

WACE PLM Docker 설정 가이드

개요

이 문서는 WACE PLM 애플리케이션을 Docker로 실행하는 방법을 설명합니다.

시스템 요구사항

리눅스 환경

  • Ubuntu 18.04 이상 또는 CentOS 7 이상
  • Docker 20.10 이상
  • Docker Compose 1.29 이상
  • Git (운영환경 배포 시)

필수 소프트웨어 설치

Docker 설치 (Ubuntu)

# 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)

# 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. 환경 변수 파일 생성

개발환경

# 개발환경 환경 변수 파일 생성
cp env.development.example .env.development

# 필요에 따라 설정 수정
vim .env.development

운영환경

# 운영환경 환경 변수 파일 생성
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)

스크립트 사용법

기본 사용법

# 실행 권한 부여 (최초 1회)
chmod +x start-docker-linux.sh

# 개발환경 실행
./start-docker-linux.sh

# 운영환경 실행
./start-docker-linux.sh -e prod

주요 옵션

환경 설정

# 개발환경 실행
./start-docker-linux.sh -e dev

# 운영환경 실행
./start-docker-linux.sh -e prod

컨테이너 관리

# 컨테이너 중지
./start-docker-linux.sh -s

# 컨테이너 재시작
./start-docker-linux.sh -r

# Docker 시스템 정리 후 실행
./start-docker-linux.sh -c

로그 및 모니터링

# 실시간 로그 확인
./start-docker-linux.sh -l

# 도움말 확인
./start-docker-linux.sh -h

옵션 조합

# 개발환경에서 Docker 정리 후 재시작
./start-docker-linux.sh -e dev -c -r

# 운영환경에서 재시작
./start-docker-linux.sh -e prod -r

접속 정보

개발환경

운영환경

트러블슈팅

일반적인 문제

1. Docker 서비스 오류

# Docker 서비스 상태 확인
sudo systemctl status docker

# Docker 서비스 시작
sudo systemctl start docker

# Docker 서비스 자동 시작 설정
sudo systemctl enable docker

2. 권한 오류

# 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER

# 로그아웃 후 재로그인 또는 그룹 변경 적용
newgrp docker

3. 포트 충돌

# 포트 사용 확인
sudo netstat -tlnp | grep :8090

# 프로세스 종료
sudo kill -9 <PID>

4. 환경 변수 파일 오류

# 환경 변수 파일 존재 확인
ls -la .env.*

# 환경 변수 파일 내용 확인
cat .env.development

로그 확인

컨테이너 로그

# 전체 로그 확인
./start-docker-linux.sh -l

# 특정 서비스 로그 확인
docker-compose -f docker-compose.dev.yml logs wace-plm

# 로그 파일 확인 (컨테이너 내부)
docker exec -it wace-plm-container tail -f /usr/local/tomcat/logs/catalina.out

시스템 로그

# Docker 데몬 로그 확인
sudo journalctl -u docker.service

# 시스템 로그 확인
sudo journalctl -xe

고급 사용법

수동 Docker Compose 사용

# 개발환경 수동 실행
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

컨테이너 내부 접근

# 컨테이너 내부 접근
docker exec -it wace-plm-container bash

# 데이터베이스 접근 (내부 DB 사용 시)
docker exec -it wace-plm-db-container psql -U postgres -d waceplm

백업 및 복원

# 데이터베이스 백업
docker exec wace-plm-db-container pg_dump -U postgres waceplm > backup.sql

# 데이터베이스 복원
docker exec -i wace-plm-db-container psql -U postgres waceplm < backup.sql

보안 고려사항

운영환경 보안

  1. 환경 변수 파일 권한 설정

    chmod 600 .env.production
    
  2. 방화벽 설정

    # 필요한 포트만 열기
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  3. SSL 인증서 설정 (Traefik 사용)

    • Let's Encrypt 자동 갱신 설정
    • 도메인 검증 설정

개발환경 보안

  1. 개발용 비밀번호 사용
  2. 외부 접근 제한
  3. 정기적인 이미지 업데이트

성능 최적화

JVM 튜닝

# .env 파일에서 JVM 옵션 조정
JAVA_OPTS=-Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m

Docker 리소스 제한

# docker-compose.yml에서 리소스 제한
services:
  wace-plm:
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 2G
        reservations:
          cpus: '1.0'
          memory: 1G

모니터링

컨테이너 상태 모니터링

# 컨테이너 상태 확인
docker ps

# 리소스 사용량 확인
docker stats

# 컨테이너 로그 모니터링
docker logs -f wace-plm-container

애플리케이션 모니터링

  • 애플리케이션 로그 확인
  • 데이터베이스 연결 상태 확인
  • 메모리 사용량 모니터링

지원 및 문의

문제가 발생하거나 추가 도움이 필요한 경우:

  1. 로그 파일 확인
  2. 환경 설정 검토
  3. 개발팀 문의