File size: 2,428 Bytes
10dd6c2
8aa5379
e9c68d8
8aa5379
ab146bf
 
bdda622
8aa5379
ab146bf
8aa5379
1a4e767
a22a42d
1a4e767
 
e6fd5f0
1a4e767
 
 
 
 
92078c7
ab146bf
92078c7
e6fd5f0
 
 
 
 
 
 
 
 
c3f5714
e6fd5f0
4aee8c2
 
1cc9011
e6fd5f0
 
 
 
 
 
 
 
 
 
1a4e767
 
 
 
 
 
 
 
 
 
ab146bf
 
8aa5379
 
3e46726
ab146bf
 
b797afe
 
 
f2d389a
e9c2872
 
fba7242
75b4e42
ab146bf
10dd6c2
fba7242
 
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
# Documentation: https://huggingface.co/docs/hub/spaces-sdks-docker

FROM python:3.9

#RUN useradd -m -u 1000 user
#USER user
ENV PATH="/home/user/.local/bin:/opt/conda/bin:$PATH"

#WORKDIR /app

ARG PYTORCH_VERSION=2.1.0
ARG PYTHON_VERSION=3.9 #8.10
ARG CUDA_VERSION=11.8
ARG CU_DNN=8.5.0.96
ARG MAMBA_VERSION=24.3.0-0
ARG CUDA_CHANNEL=nvidia
ARG INSTALL_CHANNEL=pytorch
# Automatically set by buildx
ARG TARGETPLATFORM


#USER root

# Update basic dependencies we'll be using.
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        ccache \
        curl \
        python3 \
        python3-pip \
        git && \
        rm -rf /var/lib/apt/lists/*

RUN git clone https://github.com/lee-ny/teaching_arithmetic.git /teaching_arithmetic 
# && cd teaching_arithmetic && pip install -e .
#RUN chmod +x /teaching_arithmetic
# Install conda
# translating Docker's TARGETPLATFORM into mamba arches
RUN case ${TARGETPLATFORM} in \
         "linux/arm64")  MAMBA_ARCH=aarch64  ;; \
         *)              MAMBA_ARCH=x86_64   ;; \
    esac && \
    curl -fsSL -v -o ~/mambaforge.sh -O  "https://github.com/conda-forge/miniforge/releases/download/${MAMBA_VERSION}/Mambaforge-${MAMBA_VERSION}-Linux-${MAMBA_ARCH}.sh"
RUN chmod +x ~/mambaforge.sh && \
    bash ~/mambaforge.sh -b -p /opt/conda && \
    rm ~/mambaforge.sh

# Install pytorch
# On arm64 we exit with an error code
RUN case ${TARGETPLATFORM} in \
         "linux/arm64")  exit 1 ;; \
         *)              /opt/conda/bin/conda update -y conda &&  \
                         /opt/conda/bin/conda install -c "${INSTALL_CHANNEL}" -c "${CUDA_CHANNEL}" -y "python=${PYTHON_VERSION}" "pytorch=$PYTORCH_VERSION" "pytorch-cuda=$(echo $CUDA_VERSION | cut -d'.' -f 1-2)"  ;; \
    esac && \
    /opt/conda/bin/conda clean -ya

#COPY --chown=user ./requirements.txt requirements.txt
COPY ./requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade -r requirements.txt

#COPY --chown=user teaching_arithmetic /teaching_arithmetic
#COPY --chown=user . /app
COPY . /app
RUN mkdir out
RUN mkdir out/addition_train
COPY out /out
RUN chmod +x /out
#COPY out/addition_train /out/
#RUN chmod +x /out/addition_train
COPY ./train.sh /train.sh
RUN chmod +x /train.sh
# USER 1000

# CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
ENTRYPOINT ["/train.sh"]