File size: 2,625 Bytes
10dd6c2 8aa5379 e9c68d8 8aa5379 df6f1af 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 df6f1af 0d97cbe df6f1af a208094 df6f1af 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 +x /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"] |