Download docker/Dockerfile from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 8.2 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/docker/Dockerfile
- Command line
-
hf download hf://kimjunhan/vkgs-sim/docker/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/docker/Dockerfile
8.2 kB
| # syntax=docker/dockerfile:1.7-labs | |
| # --------------------------------------------------------------------------- | |
| # vkgs-sim ๊ฐ๋ฐ ์ด๋ฏธ์ง โ ๋ก์ปฌ micromamba ํ๊ฒฝ `vkgs` ๋ฅผ ๊ทธ๋๋ก ์ฎ๊ธด ๊ฒ | |
| # | |
| # ๋ก์ปฌ ๊ฐ๋ฐ(scripts/local_setup.sh)๊ณผ ๊ฐ์ ์คํ์ ๊ฐ์ ๋ฒ์ ์ผ๋ก ๋ฃ๋๋ค: | |
| # conda docker/conda-lock.txt (micromamba env export -n vkgs --explicit) | |
| # gcc 12 ยท CUDA 12.1 nvcc ยท Vulkan ๋ก๋/ํค๋ ยท glslc ยท cmake ยท Tracy ์์กด์ฑ | |
| # pip torch 2.4.1+cu121 ยท gsplat 1.4.0 ยท docker/requirements.lock.txt (pip freeze) | |
| # ์ ๊ธ ํ์ผ์ ๋ค์ ๋ฝ๋ ๋ฒ์ docker/README.md. | |
| # | |
| # ์ ์ฅ์ ์ ์ฒด(์์ค ยท ์ค์ ยท third_party ยท assets ยท docs ยท cache ยท outputs)๋ฅผ ์ค์ ํ์ผ๋ก ๋ด๋๋ค โ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ | |
| # ๋น๋ ์ปจํ ์คํธ๋ฅผ tar -h ๋ก ๋๊ฒจ ์๋ณธ ํ์ผ๋ก ํ์ด ๋ฃ๋๋ค (docker/build_image.sh). ๊ฒฝ๋ก๋ ํธ์คํธ์ ๊ฐ์ | |
| # /home/mm/Downloads/vkgs-sim โ outputs/ ์ segments.txt ๋ฑ์ด ์ ๋ ๊ฒฝ๋ก๋ฅผ ๋ด๊ณ ์๋ค. | |
| # nuScenes ์๋ณธ(67 TB NFS)์ ๋ฃ์ง ์๋๋ค โ ์คํ ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง์ดํธ (docker/README.md). | |
| # ํธ์คํธ: Ubuntu 20.04 / NVIDIA 535 (์ต๋ CUDA 12.2) / RTX 3060 Ti (sm_86). | |
| # --------------------------------------------------------------------------- | |
| FROM nvidia/cuda:12.1.1-base-ubuntu22.04 | |
| ARG CUDA_ARCH="8.6" | |
| ARG USERNAME=dev | |
| ARG UID=1000 | |
| ARG GID=1000 | |
| ENV DEBIAN_FRONTEND=noninteractive \ | |
| TZ=Asia/Seoul \ | |
| LANG=C.UTF-8 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| MAMBA_ROOT_PREFIX=/opt/conda \ | |
| TORCH_CUDA_ARCH_LIST=${CUDA_ARCH} | |
| # Vulkan ์ graphics,display ๊ฐ ์์ด์ผ ์ปจํ ์ด๋์ NVIDIA ICD ๊ฐ ๋ค์ด์จ๋ค (์์ผ๋ฉด ์ฅ์น 0๊ฐ). | |
| ENV NVIDIA_VISIBLE_DEVICES=all \ | |
| NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics,display | |
| # --------------------------------------------------------------- 1. ์์คํ (์ต์) | |
| # ์ปดํ์ผ๋ฌยทCUDAยทVulkan ์ ์ ๋ถ conda ๊ฐ ๋ฃ๋๋ค. ์ฌ๊ธฐ๋ conda ๊ฐ ๋ชป ์ฃผ๋ ๊ฒ๊ณผ ์ ธ ๋๊ตฌ๋ง. | |
| # libegl1 ยท libgl1 ยท libx11-6 ๋ฑ์ NVIDIA ๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ปจํ ์ด๋ ํดํท์ด ์ฃผ์ )๊ฐ ๋งํฌํ๋ค. | |
| RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ | |
| --mount=type=cache,target=/var/lib/apt/lists,sharing=locked \ | |
| rm -f /etc/apt/apt.conf.d/docker-clean && \ | |
| apt-get update && apt-get install -y --no-install-recommends \ | |
| ca-certificates curl bzip2 git git-lfs sudo locales tzdata \ | |
| less vim tmux htop tree jq rsync \ | |
| libegl1 libgl1 libglvnd0 libx11-6 libxext6 libxrandr2 libxinerama1 libxcursor1 libxi6 \ | |
| libxkbcommon0 libxkbcommon-x11-0 libwayland-client0 libxxf86vm1 \ | |
| fonts-noto-cjk \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # --------------------------------------------------------------- 2. conda ํ๊ฒฝ (์ ๊ธ ๊ทธ๋๋ก) | |
| # ๋ฒ์ ๊ณ ์ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ (micro.mamba.pm ์ latest tar ๋ ๋น๋ ์ค ๊นจ์ง ์๋ต์ ์ค ์ ์ด ์๋ค) | |
| ARG MICROMAMBA_VERSION=2.0.5-0 | |
| RUN curl -fsSL --retry 5 -o /usr/local/bin/micromamba \ | |
| https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-linux-64 && \ | |
| chmod +x /usr/local/bin/micromamba && micromamba --version | |
| COPY docker/conda-lock.txt /tmp/conda-lock.txt | |
| RUN --mount=type=cache,target=/opt/conda/pkgs \ | |
| micromamba create -y -n vkgs -f /tmp/conda-lock.txt | |
| # ์ดํ RUN ์ ์ ๋ถ ํ์ฑํ๋ ํ๊ฒฝ์์ (conda ์ปดํ์ผ๋ฌ๋ activate.d ๊ฐ CC/CXX ๋ก ๊ฑด๋ค โ ์์ผ๋ฉด CMake ๊ฐ ์ปดํ์ผ๋ฌ๋ฅผ ๋ชป ์ฐพ๋๋ค) | |
| COPY docker/activate.sh /usr/local/bin/vkgs-activate | |
| RUN echo 'source /usr/local/bin/vkgs-activate' >> /etc/bash.bashrc | |
| ENV BASH_ENV=/usr/local/bin/vkgs-activate | |
| SHELL ["/bin/bash", "-c"] | |
| # --------------------------------------------------------------- 3. Python (local_setup.sh 3~4๋จ๊ณ์ ๊ฐ์ ์์) | |
| # torch ๋ฅผ ๋จ๋ ๋ ์ด์ด๋ก โ 2 GB ๊ฐ ๋์ด ์๋๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋ค์ ๋ฐ์ผ๋ฉด ๊ฐ๋น์ด ์ ๋๋ค. | |
| RUN --mount=type=cache,target=/root/.cache/pip \ | |
| python -m pip install --index-url https://download.pytorch.org/whl/cu121 \ | |
| torch==2.4.1 torchvision==0.19.1 | |
| COPY docker/requirements.lock.txt /tmp/requirements.lock.txt | |
| RUN --mount=type=cache,target=/root/.cache/pip \ | |
| python -m pip install --no-deps -r /tmp/requirements.lock.txt && \ | |
| python -m pip install --no-deps nuscenes-devkit==1.1.11 lpips==0.1.4 piq==0.8.0 | |
| # gsplat CUDA ํ์ฅ์ ์ค์น ์์ ์ ๋น๋ (์ฒซ ํ์ต์ JIT 10๋ถ ๋ฐฉ์ง). GPU ์์ด nvcc ๋ง์ผ๋ก ๋๋ค. | |
| RUN --mount=type=cache,target=/root/.cache/pip \ | |
| MAX_JOBS=8 python -m pip install --no-build-isolation gsplat==1.4.0 && \ | |
| python -c "import gsplat, torch; print('gsplat', gsplat.__version__, 'torch', torch.__version__)" | |
| # --------------------------------------------------------------- 4. ์ฌ์ฉ์ (ํธ์คํธ uid/gid ์ ๋ง์ถ๋ค โ outputs/ ์์ ๊ถ) | |
| # /opt/conda ๋ root ์์ ๊ทธ๋๋ก ๋๋ค โ chown -R ์ overlay ์์ ํ๊ฒฝ ์ GB ๋ฅผ ํต์งธ๋ก ๋ณต์ฌํ ์ธต์ ํ๋ ๋ ๋ง๋ ๋ค. | |
| # ํจํค์ง๋ฅผ ๋ ๋ฃ์ผ๋ ค๋ฉด sudo pip (์ฌ์ฉ์๋ ๋น๋ฐ๋ฒํธ ์๋ sudo). | |
| RUN groupadd -g ${GID} ${USERNAME} && useradd -m -u ${UID} -g ${GID} -s /bin/bash ${USERNAME} && \ | |
| echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME} && chmod 0440 /etc/sudoers.d/${USERNAME} | |
| # NVIDIA Vulkan ICD โ ์ปจํ ์ด๋ ํดํท(1.20, --gpus all)์ libGLX_nvidia ๋ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฃ์ด ์ฃผ์ง๋ง ์ด JSON ์ | |
| # ๋ฃ์ง ์๋๋ค (์์ผ๋ฉด vulkaninfo ์ฅ์น 0๊ฐ). ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ฆ๋ง ๊ฐ๋ฆฌํค๋ฏ๋ก ๋๋ผ์ด๋ฒ ๋ฒ์ ๊ณผ ๋ฌด๊ด. | |
| RUN mkdir -p /etc/vulkan/icd.d /usr/share/glvnd/egl_vendor.d && \ | |
| printf '{"file_format_version":"1.0.0","ICD":{"library_path":"libGLX_nvidia.so.0","api_version":"1.3.242"}}\n' > /etc/vulkan/icd.d/nvidia_icd.json && \ | |
| printf '{"file_format_version":"1.0.0","ICD":{"library_path":"libEGL_nvidia.so.0"}}\n' > /usr/share/glvnd/egl_vendor.d/10_nvidia.json | |
| COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh | |
| RUN chmod +x /usr/local/bin/entrypoint.sh | |
| # --------------------------------------------------------------- 5. ์์ ๊ณต๊ฐ (ํธ์คํธ์ ๊ฐ์ ๊ฒฝ๋ก) | |
| ARG WORKSPACE=/home/mm/Downloads/vkgs-sim | |
| ENV VKGS_WORKSPACE=${WORKSPACE} \ | |
| CCACHE_DIR=${WORKSPACE}/cache/ccache \ | |
| NUSCENES_ROOT=/home/mm/nas2/nuscenes_original_junhan/nuscenes/original/full | |
| RUN mkdir -p ${WORKSPACE} && chown ${UID}:${GID} ${WORKSPACE} /home/mm | |
| WORKDIR ${WORKSPACE} | |
| # ๋ฐ์ดํฐ๋ฅผ ๋จผ์ , ์์ค๋ฅผ ๋์ค์ โ ์์ค๋ง ๊ณ ์ณ ๋ค์ ๊ตฌ์ธ ๋ ์๋ฐฑ GB ์ธต์ ๋ค์ ๋ณต์ฌํ์ง ์๊ฒ. | |
| # outputs ๋ ํฐ ํด๋๋ง๋ค ์ธต์ ๋๋๋ค (ํ ์ธต์ด ์๋ฐฑ GB ๋ฉด ๋ด๋ณด๋ด๊ธฐ ยท ํธ์๊ฐ ๋ค๋ฃจ๊ธฐ ์ด๋ ต๋ค). | |
| COPY --chown=${UID}:${GID} outputs/gs_day ${WORKSPACE}/outputs/gs_day | |
| COPY --chown=${UID}:${GID} outputs/aug ${WORKSPACE}/outputs/aug | |
| COPY --chown=${UID}:${GID} outputs/gs ${WORKSPACE}/outputs/gs | |
| COPY --chown=${UID}:${GID} outputs/artifixer ${WORKSPACE}/outputs/artifixer | |
| COPY --chown=${UID}:${GID} --exclude=gs_day --exclude=aug --exclude=gs --exclude=artifixer outputs ${WORKSPACE}/outputs | |
| COPY --chown=${UID}:${GID} cache ${WORKSPACE}/cache | |
| COPY --chown=${UID}:${GID} third_party ${WORKSPACE}/third_party | |
| COPY --chown=${UID}:${GID} assets ${WORKSPACE}/assets | |
| COPY --chown=${UID}:${GID} docs ${WORKSPACE}/docs | |
| COPY --chown=${UID}:${GID} --exclude=outputs --exclude=cache --exclude=third_party --exclude=assets --exclude=docs \ | |
| . ${WORKSPACE} | |
| RUN python -m pip install --no-deps --no-build-isolation -e src/nusim && chown -R ${UID}:${GID} src/nusim | |
| USER ${USERNAME} | |
| # ๋ทฐ์ด ยท ๋๊ตฌ ๋น๋ (ํธ์คํธ build/ ๋ ์ปจํ ์คํธ์์ ๋น ์ง๋ค โ ํธ์คํธ conda ๊ฒฝ๋ก๋ฅผ ๋ด์ CMake ์บ์๋ผ์) | |
| RUN cmake -S src/vkgs -B build -GNinja -DCMAKE_BUILD_TYPE=Release && cmake --build build && ls build/vkgs_viewer | |
| # gsplat CUDA ํ์ฅ ๋ฏธ๋ฆฌ ์ปดํ์ผ (pip ํ ์ ์ฒซ ์ฌ์ฉ ๋ JIT โ ์ปจํ ์ด๋์์ ์ฒ์ ํ์ต์ด 10๋ถ ๋ฉ์ถ์ง ์๊ฒ). GPU ์์ด nvcc ๋ง. | |
| RUN MAX_JOBS=4 python -c "from gsplat.cuda._backend import _C; print('gsplat ext', _C is not None)" # 10๋ณ๋ ฌ์ ํ์ต๊ณผ ๊ฐ์ด ๋ ๋ cc1plus ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ICE (2026-10-17) | |
| ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] | |
| CMD ["bash"] | |