Files
magistr/frontend/Dockerfile
Zuev a759155b15
All checks were successful
Проверка, сборка и развёртывание Magistr / Обязательные проверки (push) Successful in 1m9s
Проверка, сборка и развёртывание Magistr / Собрать backend image (push) Successful in 22s
Проверка, сборка и развёртывание Magistr / Собрать frontend image (push) Successful in 26s
Проверка, сборка и развёртывание Magistr / Проверить опубликованные образы (push) Successful in 6m31s
Проверка, сборка и развёртывание Magistr / Развернуть проверенные digests (push) Has been skipped
Обновить Alpine-пакеты frontend-образа
2026-07-30 01:24:11 +03:00

31 lines
1.8 KiB
Docker
Executable File

FROM node:22-alpine3.23@sha256:8516dce0483394d5708d4b2ee6cacb79fb1d617ea4e2787c2120bcca92ce372e AS frontend-assets
WORKDIR /build
COPY package.json package-lock.json ./
RUN npm ci
COPY telemetry/ ./telemetry/
COPY scripts/build-vendor.mjs ./scripts/build-vendor.mjs
RUN npm run build:vendor
FROM httpd:alpine3.23@sha256:4a15e9c73f25334bc03cfb3c692c9adfc103bb46ca89cee1f0b9a5fcbc7b21f6
# Устанавливаем исправления безопасности, опубликованные после сборки базового образа.
RUN apk upgrade --no-cache
COPY admin/ /usr/local/apache2/htdocs/admin/
COPY department/ /usr/local/apache2/htdocs/department/
COPY edu-office/ /usr/local/apache2/htdocs/edu-office/
COPY student/ /usr/local/apache2/htdocs/student/
COPY teacher/ /usr/local/apache2/htdocs/teacher/
COPY index.html script.js style.css theme-toggle.js auth-session.js telemetry.js /usr/local/apache2/htdocs/
COPY --from=frontend-assets /build/dist/vendor/ /usr/local/apache2/htdocs/vendor/
COPY security.conf /usr/local/apache2/conf/extra/magistr-security.conf
COPY proxy.conf /usr/local/apache2/conf/extra/magistr-proxy.conf
# Сервер раздаёт same-origin ресурсы и проксирует API во внутреннюю сеть Compose.
RUN sed -i 's/^#LoadModule headers_module/LoadModule headers_module/' /usr/local/apache2/conf/httpd.conf \
&& sed -i 's/^#LoadModule proxy_module/LoadModule proxy_module/' /usr/local/apache2/conf/httpd.conf \
&& sed -i 's/^#LoadModule proxy_http_module/LoadModule proxy_http_module/' /usr/local/apache2/conf/httpd.conf \
&& printf '\nInclude conf/extra/magistr-security.conf\nInclude conf/extra/magistr-proxy.conf\n' >> /usr/local/apache2/conf/httpd.conf \
&& chown -R www-data:www-data /usr/local/apache2/htdocs/