Skip to content

Commit 7161578

Browse files
committed
[WIP] Add brotli
1 parent 598a0dc commit 7161578

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
.git
3+
.github
4+
*.log
5+
dist

CONTRIBUTING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
- Запустике сбоку `./docker.sh build` в корневой папке проекта.
6060
- Если вы хотите локально потестровать контейнер, выполните команду `./docker.sh run-local` в корневой папке проекта. Приложение запустится на порту 8080.
6161
- Eсли у вас есть сертификаты и вы хотите посмотреть на продовую сборку локально
62-
- Убедитесь что ваша операционная система MacOS или Linux. Для Windows, возможно, тоже заработает с WSL
63-
- Сoзайте папку `certs` в корневой папке проекта и скопируйте все сертификаты туда.
64-
- Добавьте в файл `/etc/hosts` строку `127.0.0.1 web-standards.ru`. Не забудьте удалить эту строку позже, иначе вы всегда будете использовать локальную версию приложения.
65-
- Запустите `./docker.sh run-prod` в корневой папке проекта
66-
- Откройте в браузере `https://web-standards.ru`.
62+
- Убедитесь что ваша операционная система MacOS или Linux. Для Windows, возможно, тоже заработает с WSL
63+
- Сoзайте папку `certs` в корневой папке проекта и скопируйте все сертификаты туда.
64+
- Добавьте в файл `/etc/hosts` строку `127.0.0.1 web-standards.ru`. Не забудьте удалить этy строку позже, иначе вы всегда будете использовать локальную версию приложения.
65+
- Запустите `./docker.sh run-prod` в корневой папке проекта
66+
- Откройте в браузере `https://web-standards.ru`.

Dockerfile

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
FROM node:lts-alpine AS builder
44
WORKDIR /app
5-
COPY . .
65
RUN apk add --no-cache git
6+
COPY . .
77
RUN npm install
88
RUN npm run build
99

@@ -14,14 +14,26 @@ RUN mkdir -p -m 700 /root/.ssh && ssh-keyscan github.com >> /root/.ssh/known_hos
1414
RUN --mount=type=ssh git clone --depth 1 git@github.com:web-standards-ru/nginx.git .
1515
RUN rm -rf .git
1616

17-
FROM nginx:stable
17+
FROM alpine
18+
1819
ARG NGINX_LOCAL=nginx.local.conf
1920
ARG NGINX_CONF=nginx.conf
2021

21-
COPY --from=nginx-config /nginx/ /etc/nginx/
22-
COPY --from=builder /app/dist /var/www/web-standards.ru/html
22+
RUN getent group www-data || addgroup -S www-data
23+
RUN getent passwd www-data || adduser -S -G www-data www-data
24+
25+
COPY --from=nginx-config /nginx /etc/nginx
26+
COPY --from=builder /app/dist/ /usr/share/nginx/html
2327
COPY --from=builder /app/${NGINX_CONF} /etc/nginx/conf.d/default.conf
2428
COPY --from=builder /app/${NGINX_LOCAL} /etc/nginx/${NGINX_LOCAL}
2529

30+
RUN apk add brotli nginx nginx-mod-http-brotli nginx-mod-http-headers-more \
31+
openssl \
32+
&& rm -rf /var/cache/apk/*
33+
RUN sed -i '1i load_module /usr/lib/nginx/modules/ngx_http_brotli_filter_module.so;' /etc/nginx/nginx.conf
34+
RUN sed -i '1i load_module /usr/lib/nginx/modules/ngx_http_brotli_static_module.so;' /etc/nginx/nginx.conf
35+
RUN mkdir -p /etc/nginx/ssl
36+
RUN openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
37+
2638
EXPOSE 80
2739
CMD ["nginx", "-g", "daemon off;"]

docker.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export DOCKER_BUILDKIT=1
55

66

77
if [ -z "$SSH_AUTH_SOCK" ]; then
8-
echo "❌ SSH agent not available. Run 'ssh-agent' and 'ssh-add' first."
9-
exit 1
8+
echo "❌ SSH agent not available. Run 'ssh-agent' and 'ssh-add' first."
9+
exit 1
1010
fi
1111

1212

0 commit comments

Comments
 (0)