Правки в конфигах для docker

This commit is contained in:
brusnitsyn
2025-12-22 13:09:25 +09:00
parent eed6607296
commit e6af72a778
5 changed files with 39 additions and 43 deletions

View File

@@ -1,5 +1,5 @@
# Этап 1: PHP зависимости # Этап 1: PHP зависимости
FROM php:8.3-fpm-bookworm AS phpbuild FROM dh-mirror.gitverse.ru/php:8.3-fpm AS phpbuild
# Установка системных зависимостей # Установка системных зависимостей
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@@ -55,7 +55,7 @@ RUN echo "opcache.enable=1" >> /usr/local/etc/php/conf.d/opcache.ini && \
echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/opcache.ini echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/opcache.ini
# Установка Composer # Установка Composer
COPY --from=composer:2.7 /usr/bin/composer /usr/bin/composer COPY --from=dh-mirror.gitverse.ru/composer:2.7 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www WORKDIR /var/www
@@ -78,7 +78,7 @@ RUN chown -R www-data:www-data /var/www && \
chmod -R 775 /var/www/storage /var/www/bootstrap/cache chmod -R 775 /var/www/storage /var/www/bootstrap/cache
# Этап 2: Сборка фронтенда (Inertia + Vue 3) # Этап 2: Сборка фронтенда (Inertia + Vue 3)
FROM node:20-bookworm-slim AS jsbuild FROM dh-mirror.gitverse.ru/node:20 AS jsbuild
# Установка дополнительных зависимостей для сборки # Установка дополнительных зависимостей для сборки
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@@ -106,13 +106,11 @@ COPY resources/css ./resources/css/
RUN npm run build RUN npm run build
# Этап 3: Финальный образ # Этап 3: Финальный образ
FROM php:8.3-fpm-bookworm FROM dh-mirror.gitverse.ru/php:8.3-fpm
# Установка runtime зависимостей # Установка runtime зависимостей
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libzip4 \
libxml2 \ libxml2 \
libicu72 \
libonig5 \ libonig5 \
libpng16-16 \ libpng16-16 \
libjpeg62-turbo \ libjpeg62-turbo \
@@ -123,6 +121,7 @@ RUN apt-get update && apt-get install -y \
libexif12 \ libexif12 \
libffi8 \ libffi8 \
supervisor \ supervisor \
nginx \
cron \ cron \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -131,14 +130,10 @@ COPY --from=phpbuild /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
COPY --from=phpbuild /usr/local/lib/php/extensions/no-debug-non-zts-20230831/ /usr/local/lib/php/extensions/no-debug-non-zts-20230831/ COPY --from=phpbuild /usr/local/lib/php/extensions/no-debug-non-zts-20230831/ /usr/local/lib/php/extensions/no-debug-non-zts-20230831/
COPY --from=phpbuild /usr/local/bin/ /usr/local/bin/ COPY --from=phpbuild /usr/local/bin/ /usr/local/bin/
# Создаем пользователя
RUN groupadd -g 1000 www && \
useradd -u 1000 -ms /bin/bash -g www www
# Копируем конфигурации # Копируем конфигурации
COPY docker/nginx.conf /etc/nginx/nginx.conf COPY docker/nginx.conf /etc/nginx/nginx.conf
COPY docker/app.conf /etc/nginx/conf.d/default.conf COPY docker/app.conf /etc/nginx/conf.d/default.conf
#COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
WORKDIR /var/www WORKDIR /var/www
@@ -149,13 +144,11 @@ COPY --chown=www:www --from=jsbuild /var/www/node_modules ./node_modules
# Настройка прав и оптимизация Laravel # Настройка прав и оптимизация Laravel
RUN mkdir -p /var/log/supervisor && \ RUN mkdir -p /var/log/supervisor && \
chown -R www:www /var/www /var/log/supervisor && \ chown -R www-data:www-data /var/www /var/log/supervisor && \
chmod -R 775 /var/www/storage /var/www/bootstrap/cache chmod -R 775 /var/www/storage /var/www/bootstrap/cache
# Создание ссылки на Storage # Создание ссылки на Storage
RUN php artisan storage:link RUN php artisan storage:link
USER www EXPOSE 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
EXPOSE 9000
CMD ["php-fpm"]

View File

@@ -1,45 +1,24 @@
services: services:
#PHP Service #PHP Service
app: app:
build: image: kartoteka:v1.0
context: .
dockerfile: Dockerfile
image: kartoteka:latest
container_name: kartoteka_app container_name: kartoteka_app
restart: unless-stopped restart: unless-stopped
tty: true tty: true
ports:
- "8090:80"
environment: environment:
SERVICE_NAME: app SERVICE_NAME: app
SERVICE_TAGS: dev SERVICE_TAGS: dev
working_dir: /var/www working_dir: /var/www
volumes: volumes:
- app_volume:/var/www
- ./.env:/var/www/.env - ./.env:/var/www/.env
- ./docker/php.ini:/usr/local/etc/php/conf.d/app.ini - ./docker/php.ini:/usr/local/etc/php/conf.d/app.ini
- ./docker/blocked_ips.map:/etc/nginx/blocked_ips.map
- ./storage/logs:/var/www/storage/logs - ./storage/logs:/var/www/storage/logs
networks: networks:
- app-network - app-network
#Nginx Service
webserver:
image: nginx:1.29.4
container_name: kartoteka_nginx
restart: unless-stopped
tty: true
ports:
- "8090:80"
volumes:
- app_volume:/var/www:ro
- ./docker/app.conf:/etc/nginx/conf.d/default.conf
- ./docker/nginx.conf:/etc/nginx/nginx.conf
- ./docker/blocked_ips.map:/etc/nginx/blocked_ips.map
networks:
- app-network
#Docker Volumes
volumes:
app_volume:
#Docker Networks #Docker Networks
networks: networks:
app-network: app-network:

View File

@@ -135,7 +135,7 @@ server {
try_files $uri =404; try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000; fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php; fastcgi_index index.php;
# Оптимизация из основного конфига # Оптимизация из основного конфига

View File

@@ -1,4 +1,3 @@
user nginx;
worker_processes auto; worker_processes auto;
worker_rlimit_nofile 65535; worker_rlimit_nofile 65535;

25
docker/supervisord.conf Normal file
View File

@@ -0,0 +1,25 @@
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisor.log
logfile_maxbytes=50MB
logfile_backups=3
[program:php-fpm]
command=/usr/local/sbin/php-fpm -F
autostart=true
autorestart=true
priority=5
stdout_logfile=/var/log/supervisor/php-fpm.log
stderr_logfile=/var/log/supervisor/php-fpm_err.log
logfile_maxbytes=50MB
logfile_backups=3
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
priority=10
stdout_logfile=/var/log/supervisor/nginx.log
stderr_logfile=/var/log/supervisor/nginx_err.log
logfile_maxbytes=50MB
logfile_backups=3