본 이미지는 CUDA 기반 ML/데이터 사이언스 실험을 위한 커스텀 개발 환경입니다.
| 영역 | 주요 내용 |
|---|---|
| Base | nvidia/cuda:12.x-cudnn-runtime-ubuntu24.04 + 시스템 Python 제거, 필수 툴만 설치 |
| Python | astral.sh/uv 기반 Python 관리, venv 기본, .bash_env로 자동 활성화 |
| code-server | 최신 버전 Shell Script 설치, 확장 자동 설치, 사용자 홈 환경 분리 |
| Mecab | 별도 빌드된 mecab-ko + mecab-ko-dic을 /opt/mecab에 배치, 필요시 PATH/LD_LIBRARY_PATH에 추가 |
| Fonts | Pretendard, Noto, D2Coding, Nanum, IBM Plex 등 CJK/코딩 폰트 직접 설치, fc-cache로 반영 |
| 시각화 | matplotlibrc 사전 지정, 한글/다국어 폰트 깨짐 방지 |
| 권한 | code 유저(UID/GID 1001) 기본, gosu/tini로 안전하게 시작, 볼륨 마운트 시 fix-permissions 지원 |
| Jupyter/ML | 주요 ML/DL/Data Science 패키지(Transformers, PyTorch, JAX 등) 사전 설치 |
python-mecab-ko 등 일부 Python 라이브러리는 /usr/local/lib 또는 /usr/lib 등 시스템 경로에 Mecab 바이너리/라이브러리 심볼릭 링크를 요구할 수 있습니다./opt/mecab에 Mecab이 설치되어 있으므로,
해당 라이브러리의 설치 스크립트나 공식 문서를 참고해 심볼릭 링크를 적절히 생성해주셔야 합니다.예시:
sudo ln -sf /opt/mecab/bin/mecab /usr/local/bin/mecab
혹은
mecab = MeCab.Tagger('-r /opt/mecab/etc/mecabrc -d /opt/mecab/share/mecab-ko-dic')
docker build -t aisflow/code:latest .
docker run -d \
--name code-server \
-p 8080:8080 \
-v "$(pwd)":/home/code/project \
aisflow/code:latest
-p 8080:8080 : code-server 접속 포트-v : 프로젝트 폴더 마운트(권장)http://<docker_host_ip>:8080 접속/home/code/.config/code-server/config.yaml 확인 또는 환경변수로 별도 지정 가능/home/code/.venv가 활성화됩니다. (별도 activate 필요 없음)/home/code/.venv/bin/python을 기본 인터프리터로 사용하도록 사전 설정다양한 한글/일어/중국어/코딩 폰트가 /usr/share/fonts/truetype에 설치
matplotlib 시각화 시 한글, 일본어 등 문자 깨짐 없음
추가 폰트 설치 시:
/usr/share/fonts/truetype/에 복사fc-cache -f -v 실행~/.config/matplotlib/matplotlibrc 수정mecab-ko, mecab-ko-dic이 /opt/mecab에 설치됨
PATH, LD_LIBRARY_PATH 설정 필요 시:
export PATH="/opt/mecab/bin:$PATH"
export LD_LIBRARY_PATH="/opt/mecab/lib:$LD_LIBRARY_PATH"
Python에서 mecab 연동은 별도 라이브러리 필요 (mecab-python3 등)
pandas==2.2.3, pyarrow, torch, jax, transformers, datasets, seqeval 등gradio, dash, streamlitpsycopg2, pymysql, pymongo, sqlalchemy, elasticsearch-dsl 등konlpy, dart-fss, opendartreaderjupyterlab, ipympl, jupyterlab-latex, ipydatagrid, jupyterlab-language-pack-ko-KRline-profiler, memory-profilerEXTENSIONS 리스트에서 관리 가능Content type
Image
Digest
sha256:949d68e11…
Size
7.4 GB
Last updated
about 2 hours ago
docker pull aisflow/code