|
|
| FROM node:18-alpine
|
|
|
|
|
| RUN apk add --no-cache git shadow
|
|
|
|
|
| WORKDIR /app
|
|
|
|
|
| RUN git clone https://github.com/SillyTavern/SillyTavern.git /app && \
|
| npm install --only=production
|
|
|
|
|
| ENV BACKGROUND_COLOR=black
|
| ENV NODE_ENV=production
|
|
|
|
|
| EXPOSE 7860
|
|
|
|
|
| CMD echo "[INFO] Starting SillyTavern..." && \
|
| if [ ! -f /data/server.js ]; then \
|
| echo "[INFO] /data is empty. Performing clean clone into persistent storage..." && \
|
| git clone https://github.com/SillyTavern/SillyTavern.git /data; \
|
| fi && \
|
| echo "[INFO] Resolving NFS directory locks and establishing symlinks..." && \
|
| if [ -d /data/node_modules ] && [ ! -L /data/node_modules ]; then \
|
| mv /data/node_modules /data/.legacy_node_modules_$(date +%s) 2>/dev/null || rm -rf /data/node_modules; \
|
| fi && \
|
| ln -sf /app/node_modules /data/node_modules && \
|
| echo "[INFO] Redirecting workspace environment and launching server..." && \
|
| cd /data && DATA_DIR=/data node server.js
|
|
|