Update Dockerfile
Browse files- Dockerfile +27 -38
Dockerfile
CHANGED
|
@@ -20,12 +20,6 @@ RUN apt-get update && apt-get upgrade -y && \
|
|
| 20 |
&& rm -rf /var/lib/apt/lists/*
|
| 21 |
|
| 22 |
# ββ Install bore ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 23 |
-
RUN wget -q "https://github.com/ekzhang/bore/releases/download/v0.5.0/bore-v0.5.0-x86_64-unknown-linux-musl.tar.gz" \
|
| 24 |
-
-O /tmp/bore.tar.gz && \
|
| 25 |
-
tar -xzf /tmp/bore.tar.gz -C /usr/local/bin bore && \
|
| 26 |
-
chmod +x /usr/local/bin/bore && \
|
| 27 |
-
rm /tmp/bore.tar.gz
|
| 28 |
-
|
| 29 |
# ββ Pin a stable machine-id βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 30 |
RUN echo "d8904b4d338adf83688caac869f64c0b" > /etc/machine-id && \
|
| 31 |
mkdir -p /var/lib/dbus && \
|
|
@@ -43,7 +37,7 @@ ENV HOME=/root \
|
|
| 43 |
# ββ Install shellular globally ββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 44 |
RUN npm install -g --prefix /usr/local shellular
|
| 45 |
|
| 46 |
-
# ββ Create Python venv
|
| 47 |
RUN python3 -m venv /root/venv && \
|
| 48 |
/root/venv/bin/pip install --upgrade pip && \
|
| 49 |
/root/venv/bin/pip install huggingface_hub && \
|
|
@@ -55,25 +49,10 @@ RUN echo 'export PS1="\u@kanha:\w\$ "' >> /root/.bashrc && \
|
|
| 55 |
echo 'cd /data' >> /root/.bash_profile
|
| 56 |
|
| 57 |
# ββ Force pip/python β always use /root/venv βββββββββββββββββββββββββββββββββ
|
| 58 |
-
RUN printf '%s\n' \
|
| 59 |
-
'#!/bin/sh' \
|
| 60 |
-
'exec /root/venv/bin/
|
| 61 |
-
> /usr/local/bin/
|
| 62 |
-
\
|
| 63 |
-
printf '%s\n' \
|
| 64 |
-
'#!/bin/sh' \
|
| 65 |
-
'exec /root/venv/bin/pip3 "$@"' \
|
| 66 |
-
> /usr/local/bin/pip3 && chmod +x /usr/local/bin/pip3 && \
|
| 67 |
-
\
|
| 68 |
-
printf '%s\n' \
|
| 69 |
-
'#!/bin/sh' \
|
| 70 |
-
'exec /root/venv/bin/python "$@"' \
|
| 71 |
-
> /usr/local/bin/python && chmod +x /usr/local/bin/python && \
|
| 72 |
-
\
|
| 73 |
-
printf '%s\n' \
|
| 74 |
-
'#!/bin/sh' \
|
| 75 |
-
'exec /root/venv/bin/python3 "$@"' \
|
| 76 |
-
> /usr/local/bin/python3 && chmod +x /usr/local/bin/python3
|
| 77 |
|
| 78 |
# ββ apt/apt-get wrapper β saves installed packages to /data/apt.txt ββββββββββ
|
| 79 |
RUN printf '%s\n' \
|
|
@@ -99,15 +78,19 @@ RUN printf '%s\n' \
|
|
| 99 |
'"$REAL_BIN" "$@"' \
|
| 100 |
> /usr/local/bin/_apt_wrapper && chmod +x /usr/local/bin/_apt_wrapper
|
| 101 |
|
| 102 |
-
RUN printf '%s\n' \
|
| 103 |
-
'#!/bin/sh' \
|
| 104 |
-
'exec /usr/local/bin/_apt_wrapper /usr/bin/apt "$@"' \
|
| 105 |
> /usr/local/bin/apt && chmod +x /usr/local/bin/apt
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
RUN printf '%s\n' \
|
| 108 |
'#!/bin/sh' \
|
| 109 |
-
'
|
| 110 |
-
|
|
|
|
|
|
|
| 111 |
|
| 112 |
# ββ Ensure /data exists βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 113 |
RUN mkdir -p /data
|
|
@@ -130,10 +113,16 @@ ENV PORT=7860
|
|
| 130 |
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
| 131 |
|
| 132 |
CMD ["bash", "-c", "\
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
&& rm -rf /var/lib/apt/lists/*
|
| 21 |
|
| 22 |
# ββ Install bore ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
# ββ Pin a stable machine-id βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 24 |
RUN echo "d8904b4d338adf83688caac869f64c0b" > /etc/machine-id && \
|
| 25 |
mkdir -p /var/lib/dbus && \
|
|
|
|
| 37 |
# ββ Install shellular globally ββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 38 |
RUN npm install -g --prefix /usr/local shellular
|
| 39 |
|
| 40 |
+
# ββ Create Python venv ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 41 |
RUN python3 -m venv /root/venv && \
|
| 42 |
/root/venv/bin/pip install --upgrade pip && \
|
| 43 |
/root/venv/bin/pip install huggingface_hub && \
|
|
|
|
| 49 |
echo 'cd /data' >> /root/.bash_profile
|
| 50 |
|
| 51 |
# ββ Force pip/python β always use /root/venv βββββββββββββββββββββββββββββββββ
|
| 52 |
+
RUN printf '%s\n' '#!/bin/sh' 'exec /root/venv/bin/pip "$@"' > /usr/local/bin/pip && chmod +x /usr/local/bin/pip && \
|
| 53 |
+
printf '%s\n' '#!/bin/sh' 'exec /root/venv/bin/pip3 "$@"' > /usr/local/bin/pip3 && chmod +x /usr/local/bin/pip3 && \
|
| 54 |
+
printf '%s\n' '#!/bin/sh' 'exec /root/venv/bin/python "$@"' > /usr/local/bin/python && chmod +x /usr/local/bin/python && \
|
| 55 |
+
printf '%s\n' '#!/bin/sh' 'exec /root/venv/bin/python3 "$@"' > /usr/local/bin/python3 && chmod +x /usr/local/bin/python3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
# ββ apt/apt-get wrapper β saves installed packages to /data/apt.txt ββββββββββ
|
| 58 |
RUN printf '%s\n' \
|
|
|
|
| 78 |
'"$REAL_BIN" "$@"' \
|
| 79 |
> /usr/local/bin/_apt_wrapper && chmod +x /usr/local/bin/_apt_wrapper
|
| 80 |
|
| 81 |
+
RUN printf '%s\n' '#!/bin/sh' 'exec /usr/local/bin/_apt_wrapper /usr/bin/apt "$@"' \
|
|
|
|
|
|
|
| 82 |
> /usr/local/bin/apt && chmod +x /usr/local/bin/apt
|
| 83 |
|
| 84 |
+
RUN printf '%s\n' '#!/bin/sh' 'exec /usr/local/bin/_apt_wrapper /usr/bin/apt-get "$@"' \
|
| 85 |
+
> /usr/local/bin/apt-get && chmod +x /usr/local/bin/apt-get
|
| 86 |
+
|
| 87 |
+
# ββ Create entrypoint script ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 88 |
RUN printf '%s\n' \
|
| 89 |
'#!/bin/sh' \
|
| 90 |
+
'set -e' \
|
| 91 |
+
'exec "$@"' \
|
| 92 |
+
> /usr/local/bin/docker-entrypoint.sh && \
|
| 93 |
+
chmod +x /usr/local/bin/docker-entrypoint.sh
|
| 94 |
|
| 95 |
# ββ Ensure /data exists βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 96 |
RUN mkdir -p /data
|
|
|
|
| 113 |
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
| 114 |
|
| 115 |
CMD ["bash", "-c", "\
|
| 116 |
+
{ \
|
| 117 |
+
chown -R root:root /data 2>/dev/null; \
|
| 118 |
+
chmod -R 755 /data 2>/dev/null; \
|
| 119 |
+
git config --global --add safe.directory '*' 2>/dev/null; \
|
| 120 |
+
if [ -f /data/apt.txt ]; then \
|
| 121 |
+
apt-get update -qq 2>/dev/null; \
|
| 122 |
+
while IFS= read -r pkg || [ -n \"$pkg\" ]; do \
|
| 123 |
+
[ -z \"$pkg\" ] && continue; \
|
| 124 |
+
apt-get install -y -qq \"$pkg\" 2>/dev/null || true; \
|
| 125 |
+
done < /data/apt.txt; \
|
| 126 |
+
fi \
|
| 127 |
+
} & \
|
| 128 |
+
exec node /root/app/app.js"]
|