## Justification Closes issue #352 This update makes the Dockerfiles OCI compliant, making it easier to use Buildah or other image building techniques that require it ## Implementation This changes a few things, listed below: * auto: Download container is switched to alpine. The `git` container specified the `/git` directory as a volume. As such, all the files under `/git` would be lost after each script invoke. Alpine is used later in the build process anyway, so it shouldn't be any extra cost to switch to it * auto: "New" clone.sh script is copied into the container, which is basically just the previous clone script that was embedded in the Dockerfile. * all: `<<EOF` heredoc styles have been switched to `&& \` * all: I added NVIDIA_DRIVER_CAPABILITIES and NVIDIA_VISIBLE_DEVICES to expose my Nvidia card. This is most likely a selinux/podman problem, but shouldn't change anything with docker to add it. * docker-compose: I added selinux labeling. I tested this with real docker (not just podman!) and it seems to work fine. Though I suggest you try it too. ## Testing Locally builds with buildah. Note: for caching to work properly, you still need to replace `/root/.cache/pip` with `/root/.cache/pip,Z` on selinux systems. Note: I was having some trouble running invoke. Thought it was this PR, but it's a known issue. See https://github.com/invoke-ai/InvokeAI/issues/3182 --------- Co-authored-by: AbdBarho <ka70911@gmail.com>
41 lines
1.4 KiB
Docker
41 lines
1.4 KiB
Docker
FROM python:3.8-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/pip pip install torch==1.13.0 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
|
|
|
|
RUN apt-get update && apt install gcc libsndfile1 ffmpeg build-essential zip unzip git -y && apt-get clean
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
|
git config --global http.postBuffer 1048576000 && \
|
|
git clone https://github.com/Sygil-Dev/sygil-webui.git stable-diffusion && \
|
|
cd stable-diffusion && \
|
|
git reset --hard 5291437085bddd16d752f811b6552419a2044d12 && \
|
|
pip install -r requirements.txt
|
|
|
|
|
|
ARG BRANCH=master SHA=571fb897edd58b714bb385dfaa1ad59aecef8bc7
|
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
|
cd stable-diffusion && \
|
|
git fetch && \
|
|
git checkout ${BRANCH} && \
|
|
git reset --hard ${SHA} && \
|
|
pip install -r requirements.txt
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/pip pip install -U 'transformers>=4.24'
|
|
|
|
# add info
|
|
COPY . /docker/
|
|
RUN python /docker/info.py /stable-diffusion/frontend/frontend.py && \
|
|
chmod +x /docker/mount.sh /docker/run.sh && \
|
|
# streamlit \
|
|
sed -i -- 's/8501/7860/g' /stable-diffusion/.streamlit/config.toml
|
|
|
|
WORKDIR /stable-diffusion
|
|
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
|
ENV NVIDIA_VISIBLE_DEVICES=all
|
|
ENV PYTHONPATH="${PYTHONPATH}:${PWD}" STREAMLIT_SERVER_HEADLESS=true USE_STREAMLIT=0 CLI_ARGS=""
|
|
EXPOSE 7860
|
|
|
|
CMD /docker/mount.sh && /docker/run.sh
|