Spaces:
Running
Running
Update Dockerfile
Browse files- Dockerfile +41 -41
Dockerfile
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
-
#original repo
|
2 |
FROM ghcr.io/danny-avila/librechat-dev:latest
|
|
|
3 |
# Install dependencies
|
4 |
USER root
|
5 |
RUN apk update && apk add --no-cache \
|
@@ -7,44 +8,37 @@ RUN apk update && apk add --no-cache \
|
|
7 |
python3 \
|
8 |
py3-pip \
|
9 |
py3-dotenv \
|
10 |
-
git
|
11 |
-
|
12 |
-
COPY config.yaml /app/librechat.yaml
|
13 |
-
#secrets
|
14 |
-
RUN --mount=type=secret,id=SUDO_SECRET,required=true cat /run/secrets/SUDO_SECRET > /app/sudo.sec
|
15 |
-
RUN export SUDO_SECRET=$(cat /app/sudo.sec)
|
16 |
-
RUN --mount=type=secret,id=MONGO_URI,required=true cat /run/secrets/MONGO_URI > /app/mongo.sec
|
17 |
-
RUN export MONGO_URI=$(cat /app/mongo.sec)
|
18 |
-
RUN --mount=type=secret,id=FLASK_SECRET,required=true cat /run/secrets/FLASK_SECRET > /app/flask.sec
|
19 |
-
RUN export FLASK_SECRET=$(cat /app/flask.sec)
|
20 |
|
21 |
-
#
|
22 |
-
|
23 |
-
&& chown -R 1000:1000 /app
|
24 |
-
# HTML Admin Panel
|
25 |
-
COPY index-temp.html /app/sudo/templates/index.html
|
26 |
-
# Admin Backend
|
27 |
-
COPY app-temp.py /app/sudo/app.py
|
28 |
-
# Caddy Configuration
|
29 |
-
RUN mkdir -p /app/caddy/
|
30 |
COPY Caddyfile /app/caddy/Caddyfile
|
31 |
-
# Startup script
|
32 |
COPY start-temp.sh /app/start.sh
|
33 |
RUN chmod +x /app/start.sh
|
34 |
-
|
35 |
-
# Create
|
36 |
-
RUN mkdir -p
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
ENV HOST=0.0.0.0 \
|
47 |
-
PORT=
|
48 |
SESSION_EXPIRY=900000 \
|
49 |
REFRESH_TOKEN_EXPIRY=604800000 \
|
50 |
SEARCH=true \
|
@@ -52,14 +46,20 @@ ENV HOST=0.0.0.0 \
|
|
52 |
MEILI_HOST=https://martynka-meilisearch.hf.space \
|
53 |
CONFIG_PATH=/app/librechat.yaml \
|
54 |
CUSTOM_FOOTER=EasierIT \
|
55 |
-
MONGO_URI="$MONGO_URI" \
|
56 |
-
SUDO_SECRET="$SUDO_SECRET" \
|
57 |
-
ADMIN_SECRET="$SUDO_SECRET" \
|
58 |
-
FLASK_SECRET="$FLASK_SECRET" \
|
59 |
NODE_ENV=production
|
60 |
-
|
|
|
61 |
RUN cd /app/api && npm install
|
62 |
-
|
|
|
|
|
|
|
|
|
63 |
EXPOSE 7860
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
65 |
CMD ["/app/start.sh"]
|
|
|
1 |
+
# Start from the original repo
|
2 |
FROM ghcr.io/danny-avila/librechat-dev:latest
|
3 |
+
|
4 |
# Install dependencies
|
5 |
USER root
|
6 |
RUN apk update && apk add --no-cache \
|
|
|
8 |
python3 \
|
9 |
py3-pip \
|
10 |
py3-dotenv \
|
11 |
+
git && \
|
12 |
+
pip install flask pymongo[srv] --break-system-packages
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
# Copy configuration files
|
15 |
+
COPY config.yaml /app/librechat.yaml
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
COPY Caddyfile /app/caddy/Caddyfile
|
|
|
17 |
COPY start-temp.sh /app/start.sh
|
18 |
RUN chmod +x /app/start.sh
|
19 |
+
|
20 |
+
# Create directory structure
|
21 |
+
RUN mkdir -p \
|
22 |
+
/app/sudo/{templates,static} \
|
23 |
+
/app/uploads/temp \
|
24 |
+
/app/client/public/images/temp \
|
25 |
+
/app/api/logs \
|
26 |
+
/app/data \
|
27 |
+
/app/caddy && \
|
28 |
+
chown -R 1000:1000 /app && \
|
29 |
+
chmod -R 777 \
|
30 |
+
/app/uploads/temp \
|
31 |
+
/app/client/public/images \
|
32 |
+
/app/api/logs \
|
33 |
+
/app/data
|
34 |
+
|
35 |
+
# Copy application files
|
36 |
+
COPY index-temp.html /app/sudo/templates/index.html
|
37 |
+
COPY app-temp.py /app/sudo/app.py
|
38 |
+
|
39 |
+
# Set environment variables (use HF-specific vars where possible)
|
40 |
ENV HOST=0.0.0.0 \
|
41 |
+
PORT=7860 \
|
42 |
SESSION_EXPIRY=900000 \
|
43 |
REFRESH_TOKEN_EXPIRY=604800000 \
|
44 |
SEARCH=true \
|
|
|
46 |
MEILI_HOST=https://martynka-meilisearch.hf.space \
|
47 |
CONFIG_PATH=/app/librechat.yaml \
|
48 |
CUSTOM_FOOTER=EasierIT \
|
|
|
|
|
|
|
|
|
49 |
NODE_ENV=production
|
50 |
+
|
51 |
+
# Install additional dependencies
|
52 |
RUN cd /app/api && npm install
|
53 |
+
|
54 |
+
# Switch to non-root user
|
55 |
+
USER 1000
|
56 |
+
|
57 |
+
# Expose the correct port for HF Spaces
|
58 |
EXPOSE 7860
|
59 |
+
|
60 |
+
# Health check (recommended for HF Spaces)
|
61 |
+
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
|
62 |
+
CMD curl -f http://localhost:7860 || exit 1
|
63 |
+
|
64 |
+
# Start command
|
65 |
CMD ["/app/start.sh"]
|