π¦ chore(Dockerfile): add Dockerfile to the project to enable containerization of the application
Browse filesπ¦ chore(Dockerfile): install necessary dependencies and tools in the Docker image for the application to run
π¦ chore(Dockerfile): set up the working directory and copy the project files into the container
π¦ chore(Dockerfile): clone the Fooocus repository and install specific versions of dependencies
π¦ chore(Dockerfile): modify webui.py to limit the maximum number of images and disable the API
π¦ chore(Dockerfile): set environment variables for the container to configure the application
π¦ chore(Dockerfile): set the command to run the application inside the container
- Dockerfile +68 -0
- requirements.txt +0 -0
Dockerfile
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
|
2 |
+
|
3 |
+
ENV DEBIAN_FRONTEND=noninteractive \
|
4 |
+
TZ=America/Los_Angeles
|
5 |
+
|
6 |
+
ARG USE_PERSISTENT_DATA
|
7 |
+
|
8 |
+
RUN apt-get update && apt-get install -y \
|
9 |
+
git \
|
10 |
+
make build-essential libssl-dev zlib1g-dev \
|
11 |
+
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
|
12 |
+
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev git-lfs \
|
13 |
+
ffmpeg libsm6 libxext6 cmake libgl1-mesa-glx \
|
14 |
+
&& rm -rf /var/lib/apt/lists/* \
|
15 |
+
&& git lfs install
|
16 |
+
|
17 |
+
WORKDIR /code
|
18 |
+
|
19 |
+
COPY ./requirements.txt /code/requirements.txt
|
20 |
+
|
21 |
+
# User
|
22 |
+
RUN useradd -m -u 1000 user
|
23 |
+
USER user
|
24 |
+
ENV HOME=/home/user \
|
25 |
+
PATH=/home/user/.local/bin:$PATH
|
26 |
+
|
27 |
+
# Pyenv
|
28 |
+
RUN curl https://pyenv.run | bash
|
29 |
+
ENV PATH=$HOME/.pyenv/shims:$HOME/.pyenv/bin:$PATH
|
30 |
+
|
31 |
+
ARG PYTHON_VERSION=3.10.12
|
32 |
+
# Python
|
33 |
+
RUN pyenv install $PYTHON_VERSION && \
|
34 |
+
pyenv global $PYTHON_VERSION && \
|
35 |
+
pyenv rehash && \
|
36 |
+
pip install --no-cache-dir --upgrade pip setuptools wheel && \
|
37 |
+
pip install --no-cache-dir \
|
38 |
+
datasets \
|
39 |
+
huggingface-hub "protobuf<4" "click<8.1"
|
40 |
+
|
41 |
+
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
42 |
+
|
43 |
+
# Set the working directory to /data if USE_PERSISTENT_DATA is set, otherwise set to $HOME/app
|
44 |
+
WORKDIR $HOME/app
|
45 |
+
|
46 |
+
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
|
47 |
+
|
48 |
+
RUN git clone https://github.com/lllyasviel/Fooocus . && \
|
49 |
+
# pin to a specific commit
|
50 |
+
pip install --no-cache-dir xformers==0.0.20 triton==2.0.0 torch==2.0.1 torchvision==0.15.2 --extra-index-url https://download.pytorch.org/whl/cu118 && \
|
51 |
+
pip install --no-cache-dir -r requirements_versions.txt
|
52 |
+
|
53 |
+
# remove the next line if you're running on your own GPU, it set max images to 3 and disables the API
|
54 |
+
RUN sed -i "s|image_number = gr.Slider(label='Image Number', minimum=1, maximum=32|image_number = gr.Slider(label='Image Number', minimum=1, maximum=3|" webui.py && \
|
55 |
+
sed -i "s|shared.gradio_root = gr.Blocks(title='Fooocus ' + fooocus_version.version, css=modules.html.css).queue()|shared.gradio_root = gr.Blocks(title='Fooocus ' + fooocus_version.version, css=modules.html.css).queue(concurrency_count=1,api_open=False)|" webui.py && \
|
56 |
+
sed -i "s|shared.gradio_root.launch(inbrowser=True, server_name=args.listen, server_port=args.port, share=args.share)|shared.gradio_root.launch(inbrowser=True, server_name=args.listen, server_port=args.port, share=args.share, show_api=False)|" webui.py
|
57 |
+
|
58 |
+
ENV HOME=/home/user \
|
59 |
+
PATH=/home/user/.local/bin:$PATH \
|
60 |
+
PYTHONPATH=$HOME/app \
|
61 |
+
PYTHONUNBUFFERED=1 \
|
62 |
+
GRADIO_ALLOW_FLAGGING=never \
|
63 |
+
GRADIO_NUM_PORTS=1 \
|
64 |
+
GRADIO_SERVER_NAME=0.0.0.0 \
|
65 |
+
GRADIO_THEME=huggingface \
|
66 |
+
SYSTEM=spaces
|
67 |
+
|
68 |
+
CMD ["python", "entry_with_update.py", "--preset", "realistic"]
|
requirements.txt
ADDED
File without changes
|