File size: 2,639 Bytes
337d241
 
 
 
 
a6610ba
 
 
337d241
 
 
 
 
 
090572d
2a5bdc2
bc714de
6ebd931
c859387
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2a5bdc2
337d241
 
 
1c56184
337d241
a6610ba
2a5bdc2
 
337d241
 
 
 
 
 
 
1c56184
337d241
 
 
 
 
 
 
 
 
15c70f2
337d241
 
730ae41
a6610ba
a35f2f4
337d241
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
620a4ee
2a5bdc2
 
337d241
4439082
 
 
 
 
a6610ba
 
 
db57386
7cd16c2
 
 
 
 
 
db57386
 
337d241
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
FROM nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    curl \
    git \
    wget \
    libgl1 \ 
    freeglut3-dev \
    unzip \
    ffmpeg \
    libsm6 \
    libxext6 \
    libgomp1 \
    libfontconfig1 \
    libgl1-mesa-glx \
    libgl1-mesa-dev \
    libglfw3 \
    libglfw3-dev \
    libglew2.1 \
    libglew-dev \
    mesa-utils \
    libc6 \
    libxdamage1 \
    libxfixes3 \
    libxcb-glx0 \
    libxcb-dri2-0 \
    libxcb-dri3-0 \
    libxcb-present0 \
    libxcb-sync1 \
    libxshmfence1 \
    libxxf86vm1 \
    libxrender1 \
    libgbm1 \
    build-essential \
    libeigen3-dev \
    python3.8 \
    python3-pip \
    python-is-python3 \
    nvidia-cuda-toolkit \
    && rm -rf /var/lib/apt/lists/*

# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user

# Switch to the "user" user
USER user

FROM python:3.8

ENV PYTHONUNBUFFERED=1

ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0 8.6"
ENV TCNN_CUDA_ARCHITECTURES=86;80;75;70;61;60
ENV FORCE_CUDA=1

ENV CUDA_HOME=/usr/local/cuda
ENV PATH=${CUDA_HOME}/bin:/home/${USER_NAME}/.local/bin:/usr/bin:${PATH}
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:/usr/lib:/usr/lib64:${LD_LIBRARY_PATH}

# Set home to the user's home directory
ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH \
    PYTHONPATH=$HOME/app:$PYTHONPATH \
	PYTHONUNBUFFERED=1 \
	GRADIO_ALLOW_FLAGGING=never \
	GRADIO_NUM_PORTS=1 \
	GRADIO_SERVER_NAME=0.0.0.0 \
	GRADIO_THEME=huggingface \
	SYSTEM=spaces

RUN pip install --upgrade pip ninja
RUN pip install setuptools==69.5.1

COPY requirements.txt /tmp
RUN cd /tmp && pip install -r requirements.txt

RUN pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu116_pyt1130/download.html
RUN python -c "import torch; print(torch.version.cuda)"

RUN chmod 777 $HOME
ENV TRANSFORMERS_CACHE=/tmp
ENV MPLCONFIGDIR=/tmp

# cannot cache function '_make_tree': no locator available for file '/usr/local/lib/python3.8/site-packages/pymatting/util/kdtree.py'
ENV NUMBA_CACHE_DIR=/tmp/numba_cache
ENV HF_HOME=$HOME/.cache/huggingface
RUN mkdir -p $HF_HOME

# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app

# Set the working directory to the user's home directory
WORKDIR $HOME/app/lib/common/libmesh/
RUN python setup.py build_ext --inplace

WORKDIR $HOME/app/lib/common/libvoxelize/
RUN python setup.py build_ext --inplace

WORKDIR $HOME/app

CMD ["python", "app.py"]