File size: 1,391 Bytes
49d36c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

FROM nvidia/cuda:12.6.0-devel-ubuntu22.04

ENV DEBIAN_FRONTEND=noninteractive

# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    python3.10 \
    python3.10-venv \
    python3.10-dev \
    python3-pip \
    git \
    git-lfs \
    wget \
    curl \
    gosu \
    xvfb \
    libegl1-mesa-dev \
    libgl1-mesa-glx \
    libglib2.0-0 \
    && rm -rf /var/lib/apt/lists/*

RUN git lfs install

# Install uv
RUN pip install uv

# Set up workspace
WORKDIR /workspace/gem
COPY . /workspace/gem

# Create virtual environment
RUN uv venv .venv --python 3.10

# Install PyTorch
RUN . .venv/bin/activate && \
    uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126

# Install SOMA body model
RUN . .venv/bin/activate && \
    uv pip install -e third_party/soma

# Pull SOMA LFS assets
RUN cd third_party/soma && git lfs pull && cd ../..

# Install GEM and dependencies
RUN . .venv/bin/activate && \
    bash scripts/install_env.sh

# Headless rendering environment
ENV PYOPENGL_PLATFORM=egl
ENV EGL_PLATFORM=surfaceless

# Activate venv by default
ENV PATH="/workspace/gem/.venv/bin:${PATH}"
ENV VIRTUAL_ENV="/workspace/gem/.venv"

ENTRYPOINT ["tools/docker-entrypoint.sh"]
CMD ["bash"]