File size: 2,628 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 0d97cbe acbd425 0d97cbe 3f5836c a208094 3eb4694 fba7242 75b4e42 0d97cbe ab146bf 10dd6c2 43a85db 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 77 78 79 80 81 82 83 84 |
# 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
COPY ./out /out
RUN chmod 777 -R /out
#RUN chmod +x /out
COPY ./out/addition_train /out/
RUN chmod 777 /teaching_arithmetic/train.py
COPY ./train.sh /train.sh
RUN chmod +x /train.sh
# Expose the secret DEBUG at buildtime and use its value as git remote URL
#RUN --mount=type=secret,id=DEBUG,mode=0444,required=true \
# git init && \
# git remote add origin $(cat /run/secrets/DEBUG)
# USER 1000
# CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
ENTRYPOINT ["/train.sh"] |