muryshev commited on
Commit
1f60a7d
·
1 Parent(s): d248375
Files changed (2) hide show
  1. Dockerfile +16 -12
  2. devops/nginx.default.conf +7 -1
Dockerfile CHANGED
@@ -1,15 +1,15 @@
1
- # Build
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=https://muryshev-generic-chatbot-backend.hf.space
8
  ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
9
  RUN npm run build
10
 
11
- # Production
12
- FROM nginx:alpine
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
- # Копируем entrypoint-скрипт и делаем его исполняемым
22
- COPY devops/entrypoint.sh /entrypoint.sh
23
- RUN chmod +x /entrypoint.sh
 
 
 
 
24
 
25
- # Указываем порт 7860
26
  EXPOSE 7860
27
 
28
- # Используем entrypoint для запуска
29
- ENTRYPOINT ["/entrypoint.sh"]
 
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
  }