llamamangadecensoring / Dockerfile
Ryu-Sena's picture
Update Dockerfile
d7a257b verified
FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04
# Basic tools installation
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y vim git zip unzip wget mc tmux nano build-essential rsync libgl1 curl
# Install MegaCMD from a pre-downloaded package
COPY megacmd-xUbuntu_18.04_amd64.deb /tmp/
RUN apt install -y /tmp/megacmd-xUbuntu_18.04_amd64.deb && \
rm /tmp/megacmd-xUbuntu_18.04_amd64.deb
# Set up non-root user
ARG USERNAME=user
RUN apt-get install -y sudo && \
addgroup --gid 1000 $USERNAME && \
adduser --uid 1000 --gid 1000 --disabled-password --gecos '' $USERNAME && \
adduser $USERNAME sudo && \
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
USER=$USERNAME && \
GROUP=$USERNAME
USER $USERNAME:$USERNAME
WORKDIR "/home/$USERNAME"
ENV PATH="/home/$USERNAME/miniconda3/bin:/home/$USERNAME/.local/bin:${PATH}"
# Install Miniconda
RUN wget -O /tmp/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh && \
echo "536817d1b14cb1ada88900f5be51ce0a5e042bae178b5550e62f61e223deae7c /tmp/miniconda.sh" > /tmp/miniconda.sh.sha256 && \
sha256sum --check --status < /tmp/miniconda.sh.sha256 && \
bash /tmp/miniconda.sh -bt -p "/home/$USERNAME/miniconda3" && \
rm /tmp/miniconda.sh && \
conda build purge && \
conda init
# Install Mamba for faster environment management
RUN conda install -n base --override-channels -c conda-forge mamba 'python_abi=*=*cp*'
ENV TORCH_HOME="/home/$USERNAME/.torch"
# Clone repositories
RUN git clone --recursive https://github.com/Er0manga/Er0mangaSeg.git
RUN git clone --recursive https://github.com/Er0manga/Er0mangaInpaint.git
# Download pretrained models using MegaCMD (retry mechanism added)
RUN mega-login && \
mega-get "https://mega.nz/file/NNQTgR4Q#MuqoCZACOc9pBZ5BzafszLqa0MEnI65KJx4PXqgjV-k" "/home/$USERNAME/Er0mangaSeg/pretrained/" || \
echo "Retrying download..." && \
mega-get "https://mega.nz/file/NNQTgR4Q#MuqoCZACOc9pBZ5BzafszLqa0MEnI65KJx4PXqgjV-k" "/home/$USERNAME/Er0mangaSeg/pretrained/"
RUN mega-get "https://mega.nz/file/gRYn2CBJ#HZ73lqn5noX_t2eyfIaDk7sIDfnGQ9gBwClJ6O3VdTE" "/home/$USERNAME/Er0mangaInpaint/pretrained/" || \
echo "Retrying download..." && \
mega-get "https://mega.nz/file/gRYn2CBJ#HZ73lqn5noX_t2eyfIaDk7sIDfnGQ9gBwClJ6O3VdTE" "/home/$USERNAME/Er0mangaInpaint/pretrained/"
RUN unzip "/home/$USERNAME/Er0mangaInpaint/pretrained/00-30-09.zip" -d "/home/$USERNAME/Er0mangaInpaint/pretrained/"
# Create Conda environment
RUN mamba env create -f "/home/$USERNAME/Er0mangaSeg/env.yml"
# Prepare app directory
RUN mkdir "/home/$USERNAME/app.py"
COPY entrypoint.sh "/home/$USERNAME/"
EXPOSE 7860
ENTRYPOINT ["/bin/bash", "/home/user/entrypoint.sh"]