FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1 RUN apt-get update && apt-get install -y git libgoogle-perftools-dev && apt-get clean ARG PUID=0 ARG PGID=0 ARG USER_HOME=/root # set build args as container environment variables for entrypoint reference ENV PUID=$PUID ENV PGID=$PGID ENV USER_HOME=$USER_HOME # if user home does not exist, create it RUN mkdir -p "$USER_HOME" # home already exists, chown it RUN chown -R "${PUID}:${PGID}" "$USER_HOME" # Only groupadd if we're non root RUN if [ "$PGID" -ne "0" ]; then \ echo non root group detected; \ groupadd \ --gid "$PGID" \ stablediffusion ;\ else \ echo "root group detected" ; \ fi # Only useradd if we're non root RUN if [ "$PUID" -ne "0" ]; then \ echo non root user detected; \ useradd \ --gid="$PGID" \ --no-user-group \ -M \ --home "$USER_HOME" \ stablediffusion ; \ else \ echo "root group detected" ; \ fi RUN chown -R "$PUID:$PGID" /stable-diffusion USER $PUID:$PGID ENV ROOT=/stable-diffusion RUN --mount=type=cache,target="$USER_HOME"/.cache/pip \ git clone https://github.com/comfyanonymous/ComfyUI.git ${ROOT} && \ cd ${ROOT} && \ git checkout master && \ git reset --hard 276f8fce9f5a80b500947fb5745a4dde9e84622d && \ pip install -r requirements.txt WORKDIR ${ROOT} COPY --chown=$PUID:$PGID . /docker RUN chmod u+x /docker/entrypoint.sh && cp /docker/extra_model_paths.yaml ${ROOT} ENV NVIDIA_VISIBLE_DEVICES=all PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS="" EXPOSE 7860 ENTRYPOINT ["/docker/entrypoint.sh"] CMD python -u main.py --listen --port 7860 ${CLI_ARGS}