forked from AgibotTech/genie_sim
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdockerfile
More file actions
47 lines (39 loc) · 2.44 KB
/
Copy pathdockerfile
File metadata and controls
47 lines (39 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# HOWTO use this
# $ docker build -f ./dockerfile -t registry.agibot.com/genie-sim/geniesim3-data-collection:latest .
FROM registry.agibot.com/genie-sim/geniesim3:latest
ENV ACCEPT_EULA=Y
ENV PRIVACY_CONSENT=Y
ENV DEBIAN_FRONTEND=noninteractive
# apt deps
USER root
RUN apt-get update && apt-get install -y ninja-build build-essential
# pip install data collection requirements
COPY ./requirements.txt /tmp
RUN /isaac-sim/python.sh -m pip install pip -U -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN /isaac-sim/python.sh -m pip install -r /tmp/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# install curobo
# Pin curobo: data_collection targets the 0.7.x API (curobo.cuda_robot_model,
# curobo.geom.sdf, curobo.util_file). Upstream main HEAD restructured to a
# Warp-based layout (drops cuda_robot_model) and breaks the server, so pin a tag.
RUN git clone https://github.com/NVlabs/curobo.git --branch v0.7.6 --depth 1 /tmp/curobo
RUN cd /tmp && wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
RUN dpkg -i /tmp/cuda-keyring_1.1-1_all.deb
RUN apt-get update
RUN apt-get -y install cuda-toolkit-12-8
# NOTICE!!! Default to RTX4090D that we use, do remember to change TORCH_CUDA_ARCH_LIST for your GPU model, see https://github.com/AgibotTech/genie_sim/issues/4
ENV CUDA_HOME="/usr/local/cuda-12.8"
ENV TORCH_CUDA_ARCH_LIST="8.9"
RUN cd /tmp/curobo && /isaac-sim/python.sh -m pip install --no-build-isolation .[isaacsim] -i https://pypi.tuna.tsinghua.edu.cn/simple
# Fix AgibotTech/genie_sim#98: pytorch in the Isaac core archive symlinks to
# `packaging`, but pip_prebundle ships without it -> torch import fails at server
# startup. Install it into the prebundle at build time (image-level fix; makes the
# runtime workaround in scripts/data_collection_entrypoint.sh redundant, and also
# covers the start_gui.sh/entry_point.sh path which lacks that workaround).
RUN /isaac-sim/python.sh -m pip install packaging -t /isaac-sim/exts/omni.isaac.core_archive/pip_prebundle/
# The kit pip_archive prebundle numpy ships without its libgfortran, which makes
# `import numpy` fail inside the kit app. Remove it so the kit uses the
# site-packages numpy instead.
RUN rm -rf /isaac-sim/extscache/omni.kit.pip_archive-*/pip_prebundle/numpy \
/isaac-sim/extscache/omni.kit.pip_archive-*/pip_prebundle/numpy-*.dist-info \
/isaac-sim/extscache/omni.kit.pip_archive-*/pip_prebundle/numpy.libs
CMD ["bash"]