generated from jim60105/Containerfile-template
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathentrypoint.sh
More file actions
80 lines (63 loc) · 1.96 KB
/
entrypoint.sh
File metadata and controls
80 lines (63 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/sh
UID="$(id -u)"
ln_scripts() {
echo "Linking scripts..."
mkdir -p /data/scripts /app/scripts
ln -sv /data/scripts/* /app/scripts 2>/dev/null
}
create_ui_config() {
if [ ! -f /data/ui-config.json ]; then
echo "Creating empty UI config..."
echo "{}" >/data/ui-config.json
fi
}
data_dir_fallback() {
echo "Setting up data directory fallback..."
ln -svT /data/ui-config.json /app/ui-config.json 2>/dev/null
mkdir -p /data/config_states /data/extensions /data/models
mkdir -p /app/config_states /app/extensions /app/models
ln -svT /data/config_states/* /app/config_states 2>/dev/null
ln -svd /data/extensions/* /app/extensions 2>/dev/null
find ./models -type f -name 'Put*here.txt' -exec rm {} \;
find ./models -type d -empty -delete
ln -svd /data/models/* /app/models 2>/dev/null
}
install_requirements() {
if ! pip show torch 2>/dev/null | grep -q Name; then
echo "Installing torch and related packages... (This will only run once and might take some time)"
uv pip install -U \
-r requirements_versions.txt \
setuptools==69.5.1 \
wheel \
torch==2.7.0 torchvision \
xformers==0.0.30 \
numpy==1.26.2 \
pillow==9.5.0
fi
}
correct_permissions() {
echo "Correcting user data permissions... Please wait a second."
chmod -R 775 /data 2>/dev/null
echo "Done."
}
handle_sigint() {
kill -s INT $python_pid
wait $python_pid
echo "WebUI stopped."
correct_permissions
exit 0
}
ln_scripts
create_ui_config
data_dir_fallback
uv venv --system-site-packages "/home/$UID/.local"
. "/home/$UID/.local/bin/activate"
install_requirements
chmod -R g=u /home/"$UID"
trap handle_sigint INT
echo "Starting WebUI with arguments: $*"
python3 /app/launch.py --listen --port 7860 --data-dir /data --gradio-allowed-path "." "$@" &
python_pid=$!
wait $python_pid
echo "WebUI stopped."
correct_permissions