Spaces:
Running
Running
fix
Browse files- Dockerfile +16 -12
- devops/nginx.default.conf +7 -1
Dockerfile
CHANGED
|
@@ -1,15 +1,15 @@
|
|
| 1 |
-
#
|
| 2 |
FROM node:20-alpine AS builder
|
| 3 |
WORKDIR /app
|
| 4 |
-
COPY package.json package-lock.json* ./
|
| 5 |
RUN npm ci
|
| 6 |
-
COPY
|
| 7 |
-
ARG VITE_API_BASE_URL
|
| 8 |
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
|
| 9 |
RUN npm run build
|
| 10 |
|
| 11 |
-
#
|
| 12 |
-
FROM nginx:
|
| 13 |
WORKDIR /usr/share/nginx/html
|
| 14 |
|
| 15 |
# Копируем собранные файлы фронтенда
|
|
@@ -18,12 +18,16 @@ COPY --from=builder /app/dist .
|
|
| 18 |
# Копируем конфигурацию Nginx
|
| 19 |
COPY devops/nginx.default.conf /etc/nginx/conf.d/default.conf
|
| 20 |
|
| 21 |
-
#
|
| 22 |
-
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
-
#
|
| 26 |
EXPOSE 7860
|
| 27 |
|
| 28 |
-
#
|
| 29 |
-
|
|
|
|
| 1 |
+
# Этап 1: Сборка фронтенда
|
| 2 |
FROM node:20-alpine AS builder
|
| 3 |
WORKDIR /app
|
| 4 |
+
COPY frontend/package.json frontend/package-lock.json* ./
|
| 5 |
RUN npm ci
|
| 6 |
+
COPY frontend/ ./
|
| 7 |
+
ARG VITE_API_BASE_URL=/api
|
| 8 |
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
|
| 9 |
RUN npm run build
|
| 10 |
|
| 11 |
+
# Этап 2: Финальный образ с Nginx
|
| 12 |
+
FROM nginx:latest
|
| 13 |
WORKDIR /usr/share/nginx/html
|
| 14 |
|
| 15 |
# Копируем собранные файлы фронтенда
|
|
|
|
| 18 |
# Копируем конфигурацию Nginx
|
| 19 |
COPY devops/nginx.default.conf /etc/nginx/conf.d/default.conf
|
| 20 |
|
| 21 |
+
# Создаём временные директории и задаём права
|
| 22 |
+
RUN mkdir -p /tmp/nginx/client_temp \
|
| 23 |
+
/tmp/nginx/proxy_temp \
|
| 24 |
+
/tmp/nginx/fastcgi_temp \
|
| 25 |
+
/tmp/nginx/uwsgi_temp \
|
| 26 |
+
/tmp/nginx/scgi_temp \
|
| 27 |
+
&& chmod -R 755 /tmp/nginx
|
| 28 |
|
| 29 |
+
# Открываем порт 7860
|
| 30 |
EXPOSE 7860
|
| 31 |
|
| 32 |
+
# Запускаем Nginx
|
| 33 |
+
CMD ["nginx", "-g", "daemon off;"]
|
devops/nginx.default.conf
CHANGED
|
@@ -2,7 +2,6 @@ server {
|
|
| 2 |
listen 7860;
|
| 3 |
server_name localhost;
|
| 4 |
|
| 5 |
-
# Указываем временные директории в /tmp
|
| 6 |
client_body_temp_path /tmp/nginx/client_temp 1 2;
|
| 7 |
proxy_temp_path /tmp/nginx/proxy_temp 1 2;
|
| 8 |
fastcgi_temp_path /tmp/nginx/fastcgi_temp 1 2;
|
|
@@ -14,4 +13,11 @@ server {
|
|
| 14 |
index index.html;
|
| 15 |
try_files $uri $uri/ /index.html;
|
| 16 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
}
|
|
|
|
| 2 |
listen 7860;
|
| 3 |
server_name localhost;
|
| 4 |
|
|
|
|
| 5 |
client_body_temp_path /tmp/nginx/client_temp 1 2;
|
| 6 |
proxy_temp_path /tmp/nginx/proxy_temp 1 2;
|
| 7 |
fastcgi_temp_path /tmp/nginx/fastcgi_temp 1 2;
|
|
|
|
| 13 |
index index.html;
|
| 14 |
try_files $uri $uri/ /index.html;
|
| 15 |
}
|
| 16 |
+
|
| 17 |
+
location /api {
|
| 18 |
+
proxy_pass https://muryshev-generic-chatbot-backend.hf.space;
|
| 19 |
+
proxy_set_header Host $host;
|
| 20 |
+
proxy_set_header X-Real-IP $remote_addr;
|
| 21 |
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
| 22 |
+
}
|
| 23 |
}
|