본문 바로가기

AI Insights & Innovations

최신 인공지능 기술과 트렌드를 탐색하는 전문 블로그

SYLOLOGY/WEBSTATION

Synology WebStation에서 Python 빌드 시 mime-support 오류 해결하기 (실전 매뉴얼 + 캡처 가이드)

by dma-ai 2025. 9. 19.
728x90

 

Synology WebStation에서 Python 빌드 시 mime-support 오류 해결하기 (실전 매뉴얼 + 캡처 가이드)

Synology NAS의 WebStation으로 Python(Django 등) 서비스를 배포할 때, 빌드 과정에서 다음과 같은 오류를 만난 경험이 있을 수 있습니다:

E: Package 'mime-support' has no installation candidate
The command '/bin/sh -c apt-get update && apt-get install -y ... mime-support ...' returned a non-zero code: 100

이 문제로 인해 WebStation에서 Python 서비스가 정상적으로 빌드되지 않고, 실행 후에는 502 Bad Gateway 오류까지 이어집니다.


원인 분석

  • Python 버전 문제 아님: Python 3.11, 3.12, 3.13 어떤 버전으로 빌드하든 동일하게 발생합니다.
  • 실제 원인: WebStation이 사용하는 Dockerfile 템플릿 안에 apt-get install mime-support 구문이 남아 있기 때문입니다.
  • Debian bookworm / Ubuntu 최신 계열에서는 mime-support 패키지가 제거되고, media-types 또는 mailcap으로 대체되었습니다.
  • 따라서 이 문제는 Synology WebStation 템플릿 버그이며 Python 자체와는 무관합니다.

해결 방법 — SSH 접속을 통한 직접 수정

1. SSH 접속

DSM 제어판 → 터미널 & SNMP → SSH 서비스 활성화.
이후 PC에서:

ssh admin@<NAS_IP>
sudo -i   # root 권한으로 전환

📸 캡처 포인트: SSH 접속 화면 + root 전환 메시지


2. 문제 파일 검색

grep -R --line-number "mime-support" /var/packages/WebStation /usr/syno 2>/dev/null

출력 예시:

/var/packages/WebStation/etc/python_profile/9e619682-0533-4660-a55c-8670f077a58f/Dockerfile:12:        mime-support \
/var/packages/WebStation/target/misc/python_dockerfile.mustache:12:        mime-support \

📸 캡처 포인트: grep 결과 화면 (문제가 되는 파일 경로 표시)


3. 파일 백업

cp /var/packages/WebStation/etc/python_profile/<UUID>/Dockerfile \
   /var/packages/WebStation/etc/python_profile/<UUID>/Dockerfile.bak

cp /var/packages/WebStation/target/misc/python_dockerfile.mustache \
   /var/packages/WebStation/target/misc/python_dockerfile.mustache.bak

📸 캡처 포인트: cp 실행 결과 (→ 로 백업 완료 확인)


4. 수정 (mime-support → media-types)

sed -i 's/mime-support/media-types/g' \
   /var/packages/WebStation/etc/python_profile/<UUID>/Dockerfile

sed -i 's/mime-support/media-types/g' \
   /var/packages/WebStation/target/misc/python_dockerfile.mustache

📸 캡처 포인트: sed 실행 후 오류 없이 커서가 돌아온 화면


5. 수정 확인

grep -n "media-types" /var/packages/WebStation/etc/python_profile/<UUID>/Dockerfile
grep -n "media-types" /var/packages/WebStation/target/misc/python_dockerfile.mustache

출력 예:

12:        media-types \

📸 캡처 포인트: mime-support가 사라지고 media-types로 바뀐 결과 화면


6. WebStation 재빌드

  • WebStation UI에서 해당 Python 서비스 → 저장/적용 → 빌드 실행
  • 빌드 로그 확인:
  • tail -f /usr/syno/etc/packages/ContainerManager/projects/<UUID>.action.log
  • mime-support 관련 에러가 사라지면 정상입니다.

📸 캡처 포인트: WebStation UI에서 재빌드 진행 중 화면 / 로그 tail 결과


다른 NAS에서의 상황

  • 어떤 NAS에서는 아직 Python 서비스를 만들지 않은 경우, python_profile/<UUID>/Dockerfile이 없고 템플릿 파일만 존재할 수 있습니다.
  • 이때도 템플릿(mustache)만 수정하면 충분합니다. 이후 새 Python 서비스를 생성할 때 자동으로 수정된 Dockerfile이 생성됩니다.

📸 캡처 포인트: ls /var/packages/WebStation/etc/python_profile/ 실행 → 빈 디렉터리 화면


UUID란?

  • WebStation이 Python 서비스를 만들 때 /var/packages/WebStation/etc/python_profile/ 경로에 생성하는 폴더명이 UUID입니다.
  • 예시:
  • /var/packages/WebStation/etc/python_profile/9e619682-0533-4660-a55c-8670f077a58f/
  • 여기 들어 있는 Dockerfile이 실제 서비스 빌드에 사용됩니다.

📸 캡처 포인트: ls -l /var/packages/WebStation/etc/python_profile/ 실행 결과 → UUID 폴더 표시


정리

  • mime-support 오류는 Python과 무관하며, Synology WebStation의 구식 Dockerfile 템플릿이 원인입니다.
  • SSH 접속 후 템플릿과 서비스별 Dockerfile에서 mime-support를 media-types로 교체하면 문제는 해결됩니다.
  • 템플릿까지 수정하면, 이후 새 서비스 생성에도 자동 반영됩니다.
  • 단, DSM/WebStation 업데이트 시 템플릿이 덮어씌워질 수 있으므로 업데이트 후 다시 확인이 필요합니다.

 

728x90