From de01e43633edc37e879cf97083b624d7f59f15f9 Mon Sep 17 00:00:00 2001 From: erjemin Date: Tue, 24 Mar 2026 16:29:27 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B2=20docker=20=D0=B4=D0=BB=D1=8F=20dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 7 +++ Dockerfile | 13 +++++ .../lpon--external-nginx.conf} | 0 config/nginx/lpon--internal-nginx.conf | 50 +++++++++++++++++++ docker-compose.yml | 23 +++++++++ 5 files changed, 93 insertions(+) create mode 100644 Dockerfile rename config/{lpon.conf => nginx/lpon--external-nginx.conf} (100%) create mode 100644 config/nginx/lpon--internal-nginx.conf create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore index 351f1bb..4ef4fa4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -37,3 +37,10 @@ public/media # Медиа файлы НЕ нужны в образе, он # Mac OS и Synology .DS_Store + +# Project specific +logs/ +-design-and-misc/ +Dockerfile +.dockerignore +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a2b7f07 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +# Используем официальный легковесный образ Nginx на базе Alpine Linux +FROM nginx:alpine +# FROM nginx:nginx:1.25-alpine + +# Удаляем стандартную конфигурацию Nginx, чтобы использовать свою +RUN rm /etc/nginx/conf.d/default.conf + +# Копируем наш кастомный конфиг для внутреннего Nginx +COPY config/nginx/lpon--internal-nginx.conf /etc/nginx/conf.d/default.conf + +# Копируем все содержимое папки 'public' в корневую веб-директорию Nginx +# Теперь index.html, favicons, robots.txt, и папка static/ будут доступны +COPY public/ /usr/share/nginx/html/ diff --git a/config/lpon.conf b/config/nginx/lpon--external-nginx.conf similarity index 100% rename from config/lpon.conf rename to config/nginx/lpon--external-nginx.conf diff --git a/config/nginx/lpon--internal-nginx.conf b/config/nginx/lpon--internal-nginx.conf new file mode 100644 index 0000000..63ef5af --- /dev/null +++ b/config/nginx/lpon--internal-nginx.conf @@ -0,0 +1,50 @@ +# --- ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ --- +# sendfile on; +tcp_nopush on; +tcp_nodelay on; +# keepalive_timeout 65; +types_hash_max_size 2048; + +# MIME-типы и кодировка по умолчанию +include /etc/nginx/mime.types; +# default_type application/octet-stream; + +# Настройки логов +access_log /dev/stdout; +error_log /dev/stderr warn; + +# Настройки сжатия gzip +gzip on; +gzip_proxied any; +gzip_comp_level 6; +gzip_buffers 16 8k; +gzip_http_version 1.1; +gzip_disable "msie6"; +gzip_vary on; +gzip_min_length 512; +gzip_types text/plain + text/css + application/json + application/x-javascript + text/xml application/xml + application/xml+rss + text/javascript + application/javascript + application/vnd.ms-fontobject + application/x-font-ttf + font/opentype + image/svg+xml + image/x-icon; + +# --- КОНФИГУРАЦИЯ СЕРВЕРА --- +server { + listen 80 default_server; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ =404; + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..337973a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +# Этот файл предназначен для dev-окружения и тестирования. В продакшене используем docker-compose.prod.yml + +# В новых версиях Docker Compose можно не указывать версию (даже warning появляется, если указать) +# version: '3.8' + +services: + lpon-site: + # Указываем Docker Compose, что образ нужно собрать из Dockerfile в текущей директории + build: . + # image: nginx:1.25-alpine + # Имя контейнера для удобства + container_name: lpon-site + # Политика перезапуска: всегда перезапускать контейнер, если он упал + restart: always + ports: + # Пробрасываем свободный порт 8020 на хосте на стандартный порт 80 внутри контейнера + - "8020:80" + networks: + - lpon-network + +networks: + lpon-network: + driver: bridge