1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

оптимизация сборки фронтенда2

This commit is contained in:
MoonTestUse1
2025-01-03 04:01:50 +06:00
parent 5327b86a7d
commit d898532154
3 changed files with 61 additions and 28 deletions

View File

@@ -3,41 +3,32 @@ FROM node:18-alpine as build
WORKDIR /app
# Устанавливаем зависимости для сборки
RUN apk add --no-cache python3 make g++
# Копируем только файлы для установки зависимостей
COPY frontend/package*.json ./
# Устанавливаем зависимости с кэшированием
RUN --mount=type=cache,target=/root/.npm \
npm install
# Устанавливаем зависимости
RUN npm install --production
# Копируем остальные файлы проекта
COPY frontend/ .
# Собираем приложение с кэшированием
RUN --mount=type=cache,target=/root/.npm \
npm run build
# Собираем приложение
RUN npm run build
# Production stage
FROM nginx:alpine
# Устанавливаем certbot и необходимые пакеты
# Устанавливаем certbot
RUN apk add --no-cache certbot certbot-nginx
# Копируем конфигурацию nginx
# Копируем конфигурацию nginx и собранные файлы
COPY docker/frontend/nginx.conf /etc/nginx/conf.d/default.conf
# Копируем скрипт инициализации SSL
COPY docker/frontend/init-ssl.sh /docker-entrypoint.d/init-ssl.sh
RUN chmod +x /docker-entrypoint.d/init-ssl.sh
# Копируем только собранные файлы из build stage
COPY --from=build /app/dist /usr/share/nginx/html
# Создаем директории для Let's Encrypt
RUN mkdir -p /var/www/certbot /etc/letsencrypt
# Копируем скрипт SSL и создаем директории
COPY docker/frontend/init-ssl.sh /docker-entrypoint.d/init-ssl.sh
RUN chmod +x /docker-entrypoint.d/init-ssl.sh && \
mkdir -p /var/www/certbot /etc/letsencrypt
EXPOSE 80 443