soxogvv commited on
Commit
a2cf0cf
Β·
verified Β·
1 Parent(s): d634559

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +4 -21
Dockerfile CHANGED
@@ -91,7 +91,6 @@ RUN printf '%s\n' \
91
  ' case "$arg" in -*) continue ;; esac' \
92
  ' if ! grep -qx "$arg" "$APT_FILE"; then' \
93
  ' echo "$arg" >> "$APT_FILE"' \
94
- ' echo "βœ“ $arg saved to apt.txt"' \
95
  ' fi' \
96
  ' done' \
97
  ' fi' \
@@ -125,57 +124,41 @@ RUN printf '%s\n' \
125
  '' \
126
  'mkdir -p /data/persist' \
127
  '' \
128
- '# ── All persist/restore work runs in background so app starts immediately ──' \
129
  '(' \
130
- ' # ── Step 1: RESTORE β€” /data/persist β†’ /root/ ────────────────────────' \
131
  ' if [ -d "/data/persist/venv" ] && [ ! -L "/data/persist/venv" ]; then' \
132
- ' echo "β–Ά Restoring venv from backup..."' \
133
  ' rsync -a --ignore-existing /data/persist/venv/ /root/venv/ 2>/dev/null || true' \
134
- ' else' \
135
- ' echo "β–Ά No venv backup found, using image default"' \
136
  ' fi' \
137
  ' if [ -d "/data/persist/cache" ] && [ ! -L "/data/persist/cache" ]; then' \
138
- ' echo "β–Ά Restoring cache from backup..."' \
139
  ' rsync -a --ignore-existing /data/persist/cache/ /root/.cache/ 2>/dev/null || true' \
140
  ' fi' \
141
  '' \
142
- ' # ── Step 2: Fix pip ──────────────────────────────────────────────────' \
143
  ' rm -f /root/venv/lib/python*/EXTERNALLY-MANAGED' \
144
  '' \
145
- ' # ── Step 3: WIPE old backup, recreate fresh from /root/ ─────────────' \
146
- ' echo "β–Ά Rebuilding backup from /root/venv..."' \
147
- ' rm -rf /data/persist/venv' \
148
- ' rm -rf /data/persist/cache' \
149
  ' cp -a /root/venv /data/persist/venv' \
150
  ' cp -a /root/.cache /data/persist/cache 2>/dev/null || true' \
151
- ' echo "β–Ά Backup done"' \
152
  '' \
153
- ' # ── Step 4: apt.txt reinstall ────────────────────────────────────────' \
154
  ' APT_FILE="/data/apt.txt"' \
155
  ' if [ ! -f "$APT_FILE" ]; then touch "$APT_FILE"; fi' \
156
  ' if [ -s "$APT_FILE" ]; then' \
157
- ' echo "β–Ά Installing packages from apt.txt..."' \
158
- ' /usr/bin/apt-get update -qq' \
159
  ' while IFS= read -r pkg || [ -n "$pkg" ]; do' \
160
  ' pkg=$(echo "$pkg" | tr -d "[:space:]")' \
161
  ' [ -z "$pkg" ] && continue' \
162
  ' [ "${pkg#\#}" != "$pkg" ] && continue' \
163
- ' /usr/bin/apt-get install -y --no-install-recommends "$pkg" \' \
164
- ' && echo "βœ“ $pkg" \' \
165
- ' || echo "WARNING: Failed to install $pkg"' \
166
  ' done < "$APT_FILE"' \
167
  ' rm -rf /var/lib/apt/lists/*' \
168
  ' fi' \
169
  '' \
170
- ' # ── Step 5: Background sync every 60s ───────────────────────────────' \
171
  ' while true; do' \
172
  ' sleep 60' \
 
173
  ' rsync -a --delete /root/venv/ /data/persist/venv/ 2>/dev/null' \
174
  ' rsync -a --delete /root/.cache/ /data/persist/cache/ 2>/dev/null' \
175
  ' done' \
176
  ') &' \
177
  '' \
178
- '# ── Start the app immediately ─────────────────────────────────────────────' \
179
  'exec "$@"' \
180
  > /usr/local/bin/docker-entrypoint.sh && \
181
  chmod +x /usr/local/bin/docker-entrypoint.sh
 
91
  ' case "$arg" in -*) continue ;; esac' \
92
  ' if ! grep -qx "$arg" "$APT_FILE"; then' \
93
  ' echo "$arg" >> "$APT_FILE"' \
 
94
  ' fi' \
95
  ' done' \
96
  ' fi' \
 
124
  '' \
125
  'mkdir -p /data/persist' \
126
  '' \
 
127
  '(' \
 
128
  ' if [ -d "/data/persist/venv" ] && [ ! -L "/data/persist/venv" ]; then' \
 
129
  ' rsync -a --ignore-existing /data/persist/venv/ /root/venv/ 2>/dev/null || true' \
 
 
130
  ' fi' \
131
  ' if [ -d "/data/persist/cache" ] && [ ! -L "/data/persist/cache" ]; then' \
 
132
  ' rsync -a --ignore-existing /data/persist/cache/ /root/.cache/ 2>/dev/null || true' \
133
  ' fi' \
134
  '' \
 
135
  ' rm -f /root/venv/lib/python*/EXTERNALLY-MANAGED' \
136
  '' \
137
+ ' rm -rf /data/persist/venv /data/persist/cache' \
 
 
 
138
  ' cp -a /root/venv /data/persist/venv' \
139
  ' cp -a /root/.cache /data/persist/cache 2>/dev/null || true' \
 
140
  '' \
 
141
  ' APT_FILE="/data/apt.txt"' \
142
  ' if [ ! -f "$APT_FILE" ]; then touch "$APT_FILE"; fi' \
143
  ' if [ -s "$APT_FILE" ]; then' \
144
+ ' /usr/bin/apt-get update -qq 2>/dev/null' \
 
145
  ' while IFS= read -r pkg || [ -n "$pkg" ]; do' \
146
  ' pkg=$(echo "$pkg" | tr -d "[:space:]")' \
147
  ' [ -z "$pkg" ] && continue' \
148
  ' [ "${pkg#\#}" != "$pkg" ] && continue' \
149
+ ' /usr/bin/apt-get install -y --no-install-recommends "$pkg" >/dev/null 2>&1 || true' \
 
 
150
  ' done < "$APT_FILE"' \
151
  ' rm -rf /var/lib/apt/lists/*' \
152
  ' fi' \
153
  '' \
 
154
  ' while true; do' \
155
  ' sleep 60' \
156
+ ' mkdir -p /data/persist/venv /data/persist/cache' \
157
  ' rsync -a --delete /root/venv/ /data/persist/venv/ 2>/dev/null' \
158
  ' rsync -a --delete /root/.cache/ /data/persist/cache/ 2>/dev/null' \
159
  ' done' \
160
  ') &' \
161
  '' \
 
162
  'exec "$@"' \
163
  > /usr/local/bin/docker-entrypoint.sh && \
164
  chmod +x /usr/local/bin/docker-entrypoint.sh