muryshev commited on
Commit
d6b9145
·
1 Parent(s): e2036e6
Files changed (1) hide show
  1. Dockerfile +15 -42
Dockerfile CHANGED
@@ -1,56 +1,29 @@
1
  # Этап 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=/api
8
  ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
9
  RUN npm run build
10
 
11
- # Этап 2: Финальный образ с Nginx
12
- FROM nginx:alpine
13
- USER root # Запускаем от root, чтобы корректно настроить права
14
-
15
- # Создаём непривилегированного пользователя
16
- RUN adduser -D -u 1000 -s /bin/sh pn
17
-
18
- # Создаём нужные директории и устанавливаем права
19
- RUN mkdir -p /var/cache/nginx \
20
- /var/log/nginx \
21
- /var/lib/nginx \
22
- /var/run \
23
- /tmp/nginx/client_temp \
24
- /tmp/nginx/proxy_temp \
25
- /tmp/nginx/fastcgi_temp \
26
- /tmp/nginx/uwsgi_temp \
27
- /tmp/nginx/scgi_temp
28
-
29
- RUN touch /var/run/nginx.pid
30
-
31
- # Даём права на директории, чтобы Nginx мог их использовать
32
- RUN chown -R pn:pn /var/cache/nginx \
33
- /var/log/nginx \
34
- /var/lib/nginx \
35
- /var/run/nginx.pid \
36
- /tmp/nginx
37
-
38
- USER pn # Запускаем Nginx от пользователя pn
39
- ENV HOME=/home/pn \
40
- PATH=/home/pn/.local/bin:$PATH
41
-
42
- RUN mkdir -p $HOME/app
43
-
44
- WORKDIR $HOME/app
45
 
46
- # Копируем собранные файлы фронтенда
47
- COPY --chown=pn --from=builder /app/dist .
48
 
49
- # Копируем конфигурацию Nginx
50
- COPY --chown=pn devops/nginx.default.conf /etc/nginx/conf.d/default.conf
51
 
52
- # Открываем порт 7860
53
  EXPOSE 7860
54
 
55
- # Запускаем Nginx
56
- CMD ["nginx", "-g", "daemon off;"]
 
1
  # Этап 1: Сборка фронтенда
2
  FROM node:20-alpine AS builder
3
  WORKDIR /app
4
+
5
+ # Копируем файлы package.json и устанавливаем зависимости
6
  COPY package.json package-lock.json* ./
7
  RUN npm ci
8
+
9
+ # Копируем весь проект и собираем фронтенд
10
  COPY . ./
11
+ ARG VITE_API_BASE_URL=https://muryshev-generic-chatbot-backend.hf.space
12
  ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
13
  RUN npm run build
14
 
15
+ # Этап 2: Запускаем приложение через serve
16
+ FROM node:20-alpine
17
+ WORKDIR /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
+ # Устанавливаем глобально `serve`
20
+ RUN npm install -g serve
21
 
22
+ # Копируем собранный фронтенд из builder-слоя
23
+ COPY --from=builder /app/dist .
24
 
25
+ # Открываем порт 3000
26
  EXPOSE 7860
27
 
28
+ # Запускаем сервер serve
29
+ CMD ["serve", "-s", ".", "-l", "7860"]