스크립트 수정
This commit is contained in:
parent
ed1ee73cd2
commit
724ed51826
|
|
@ -10,9 +10,22 @@ const prisma = new PrismaClient();
|
||||||
|
|
||||||
// 업로드 디렉토리 설정 (회사별로 분리)
|
// 업로드 디렉토리 설정 (회사별로 분리)
|
||||||
const baseUploadDir = path.join(process.cwd(), "uploads");
|
const baseUploadDir = path.join(process.cwd(), "uploads");
|
||||||
if (!fs.existsSync(baseUploadDir)) {
|
|
||||||
fs.mkdirSync(baseUploadDir, { recursive: true });
|
// 디렉토리 생성 함수 (에러 핸들링 포함)
|
||||||
}
|
const ensureUploadDir = () => {
|
||||||
|
try {
|
||||||
|
if (!fs.existsSync(baseUploadDir)) {
|
||||||
|
fs.mkdirSync(baseUploadDir, { recursive: true });
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.warn(
|
||||||
|
`업로드 디렉토리 생성 실패: ${error}. 기존 디렉토리를 사용합니다.`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 초기화 시 디렉토리 확인
|
||||||
|
ensureUploadDir();
|
||||||
|
|
||||||
// 회사별 + 날짜별 디렉토리 생성 함수
|
// 회사별 + 날짜별 디렉토리 생성 함수
|
||||||
const getCompanyUploadDir = (companyCode: string, dateFolder?: string) => {
|
const getCompanyUploadDir = (companyCode: string, dateFolder?: string) => {
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@ COPY --from=build /app/dist ./dist
|
||||||
# Copy package files
|
# Copy package files
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# Create logs directory and set permissions
|
# Create logs and uploads directories and set permissions
|
||||||
RUN mkdir -p logs && chown -R appuser:appgroup logs && chmod -R 755 logs
|
RUN mkdir -p logs uploads && chown -R appuser:appgroup logs uploads && chmod -R 755 logs uploads
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
USER appuser
|
USER appuser
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "============================================"
|
||||||
|
echo "백엔드 권한 문제 긴급 수정"
|
||||||
|
echo "============================================"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔧 백엔드 컨테이너 권한 문제를 수정합니다..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 1. 기존 백엔드 컨테이너 중지 및 제거
|
||||||
|
echo "1. 기존 백엔드 컨테이너 중지 중..."
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml down -v --remove-orphans 2>/dev/null || true
|
||||||
|
|
||||||
|
# 강제로 컨테이너 제거
|
||||||
|
docker stop pms-backend-prod 2>/dev/null || true
|
||||||
|
docker rm pms-backend-prod 2>/dev/null || true
|
||||||
|
|
||||||
|
# 2. 기존 이미지 제거 (캐시 무효화)
|
||||||
|
echo "2. 기존 백엔드 이미지 제거 중..."
|
||||||
|
docker rmi $(docker images | grep -E "(pms-backend|erp-node.*backend)" | awk '{print $3}') 2>/dev/null || true
|
||||||
|
|
||||||
|
# 3. 새로운 이미지 빌드
|
||||||
|
echo "3. 수정된 백엔드 이미지 빌드 중..."
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml build --no-cache --pull
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "❌ 백엔드 빌드 실패"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. 백엔드 컨테이너 시작
|
||||||
|
echo "4. 백엔드 컨테이너 시작 중..."
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml up -d
|
||||||
|
|
||||||
|
# 5. 잠시 대기 후 상태 확인
|
||||||
|
echo "5. 백엔드 서비스 안정화 대기 중... (30초)"
|
||||||
|
sleep 30
|
||||||
|
|
||||||
|
# 6. 상태 확인
|
||||||
|
echo "6. 백엔드 컨테이너 상태 확인:"
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml ps
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "백엔드 최근 로그:"
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml logs --tail=15
|
||||||
|
|
||||||
|
# 7. 헬스체크
|
||||||
|
echo ""
|
||||||
|
echo "7. 헬스체크 수행 중..."
|
||||||
|
for i in {1..10}; do
|
||||||
|
if curl -s http://localhost:8080/health >/dev/null 2>&1; then
|
||||||
|
echo " ✅ 백엔드 서비스 정상 복구!"
|
||||||
|
echo ""
|
||||||
|
echo "🎉 수정 완료! 백엔드가 정상적으로 실행 중입니다."
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo " ⏳ 백엔드 응답 대기 중... ($i/10)"
|
||||||
|
sleep 3
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo " ❌ 여전히 문제가 있습니다. 로그를 확인해주세요:"
|
||||||
|
docker-compose -f docker/prod/docker-compose.backend.prod.yml logs --tail=20
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔧 추가 디버깅 명령어:"
|
||||||
|
echo " 실시간 로그: docker-compose -f docker/prod/docker-compose.backend.prod.yml logs -f"
|
||||||
|
echo " 컨테이너 접속: docker exec -it pms-backend-prod bash"
|
||||||
|
echo " 권한 확인: docker exec -it pms-backend-prod ls -la /app/"
|
||||||
Loading…
Reference in New Issue