ReyDev commited on
Commit
e9a6e2d
β€’
1 Parent(s): f9642b4

πŸ“¦ 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

Files changed (2) hide show
  1. Dockerfile +68 -0
  2. 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